본문 바로가기

알고리즘

[자료구조] 우선순위 큐 (Priority Queue) 출처 - https://hannom.tistory.com/36 큐는 연산의 결과로 먼저 들어간 데이터가 먼저 나오나 우선순위 큐는 다르다. 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나온다. 우선순위가 다른 데이터 뿐만 아니라 같은 데이터가 존재할 수도 있다. 우선순위 큐를 구현하는 방법은 세 가지로 나뉘어진다. - 배열을 기반으로 구현하는 방법 - 연결리스트를 기반으로 구현하는 방법 - 힙(Heap)을 이용하는 방법 우선순위 큐는 주로 힙(Heap)을 이용해서 구현하는 것이 성능상으로 가장 좋다. 힙을 기반으로 우선 순위 큐를 구현하고자 한다. 힙의 구현을 위해 데이터의 저장과 삭제 방법을 알아보자 1) 데이터 저장 로직 위 힙 구조 안에 있는 숫자를 데이터 겸 우선순위라고 하고 숫자가 작을.. 더보기
백준 문자열 검색 주요 문제 모음 백준 1543. 문서 검색 (문자열 검색) https://www.acmicpc.net/problem/1543 들어간 개념 1. indexOf() indexOf(String str) Hello의 위치를 찾아 줘! indexOf("Hello"); World의 위치를 찾아 줘! indexOf("World"); 즉, String 형태로 넣어주면 문자열의 시작인 첫번째 글자의 위치를 찾아주게 된다. WWorld 이렇게 겹치는 경우 World의 index를 찾는다면? 답은 뒤에 있는것을 기준으로 나온다 시도했다가 실패했던 것 replaceFirst 메소드를 사용하니깐 단순히 찾으려는 문자열 'aba' 제외하고, 남은 문자열은 그대로 출력해주었다. -> 원래는 'aba'를 찾았으면 그 다음 index부터 다시 계산해.. 더보기
Arrays.sort() Arrays.sort() - 자바 배열 정렬 함수 public static void main(String[] args) { int numSort[] = {37,27,40,30,28,19}; Arrays.sort(numSort); for(int i=0; i 더보기
코드업 1714. 숫자 거꾸로 출력하기 https://codeup.kr/ 1714 : 숫자 거꾸로 출력하기 1) 일단 String값을 입력받는다 2) 입력받은 String값을 split메소드를 이용하여 array_word 배열에 담는다 3) 그 배열의 길이만큼 끝에서부터 하나씩 출력한다 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String word; String[] array_word; int i; word = sc.next(); array_word = word.split(""); // 1234 담긴 상태 int len = array_word.length; //he.. 더보기