문제

programmers 이중우선순위큐 문제 보러가기



풀이

import java.util.*;

public class Solution {
	public int[] solution(String[] operations) {
		int[] answer = new int[2];
		ArrayList<Integer> list = new ArrayList<Integer>();

		for (int i = 0; i < operations.length; i++) {
			String[] tmp = operations[i].split(" ");
			if (tmp[0].equals("I"))
				list.add(Integer.parseInt(tmp[1]));
			else if (!list.isEmpty() && tmp[0].equals("D")) {
				if (Integer.parseInt(tmp[1]) >= 0)
					list.remove(Collections.max(list));
				else
					list.remove(Collections.min(list));
			}
		}

		if (list.isEmpty())
			answer[0] = answer[1] = 0;
		else {
			answer[0] = Collections.max(list);
			answer[1] = Collections.min(list);
		}

		return answer;
	}
}



문제점 해결

ArrayList를 사용해서 min값과 max값을 찾아내는 부분이 핵심이라고 생각한다.