dyn
dyn
dyn
전체 방문자
오늘
어제
  • 분류 전체보기 (69)
    • 알고리즘 (33)
      • BOJ (23)
      • SWEA (8)
      • 공부 (2)
    • TIL (13)
    • STEAM 게임 추천 (2)
    • [프로젝트] Reserve Me (5)
    • 인턴 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

hELLO · Designed By 정상우.
dyn

dyn

알고리즘/BOJ

BOJ 11286

2022. 8. 12. 11:52
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Comparator;
import java.util.PriorityQueue;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int N = Integer.parseInt(bf.readLine());
		PriorityQueue<Integer> q = new PriorityQueue<>(new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				int diff = Math.abs(o1) - Math.abs(o2);
				if(diff==0) {
					diff = o1 - o2;
				}
				return diff;
			}
		});
		for(int i=0; i<N; i++) {
			int tmp = Integer.parseInt(bf.readLine());
			if(tmp==0) {
				if(q.isEmpty()) {
					sb.append(0+"\n");
				}else {
					sb.append(q.poll()+"\n");
				}
			}else {
				q.add(tmp);
			}
		}
		System.out.println(sb.toString());

	}

}

우선순위 큐를 사용하지 않고 ArrayList에 담아 Collections.sort에 절댓값을 비교하는 Comparator를 작성해서 풀려고 하니까 시간초과가 났다.. 정렬 후 큐처럼 poll()을 해서 조회-삭제를 한번에 할 수 있으면 좋겠다고 생각했는데 Collections.sort는 Queue가 안 들어감. 우선순위큐는 생성하는 부분에 comparator를 매개변수로해서 비교 기준을 정해줄 수 있었다..

저작자표시 (새창열림)

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 2407 조합 (Java)  (0) 2023.02.22
BOJ 15686  (0) 2022.08.12
BOJ 9020  (0) 2022.08.05
BOJ 4948  (0) 2022.08.05
BOJ 1929  (0) 2022.08.05
    '알고리즘/BOJ' 카테고리의 다른 글
    • [BOJ] 2407 조합 (Java)
    • BOJ 15686
    • BOJ 9020
    • BOJ 4948
    dyn
    dyn

    티스토리툴바