class Solution {
public int[] gardenNoAdj(int n, int[][] paths) {
Queue<Integer> flowers = new LinkedList<Integer>();
Queue<int[]> ps = new PriorityQueue<int[]>((n1, n2) -> (n1[0] - n2[0]));
for (int[] p: paths) {
if (p[0] > p[1]) {
int temp = p[1];
p[1] = p[0];
p[0] = temp;
}
ps.add(p);
}
int[] result = new int[n];
while (! ps.isEmpty()) {
int[] gar = ps.poll();
int first = flowers.remove();
result[gar[0]] = first;
flowers.offer(first);
int second = flowers.remove();
result[gar[1]] = second;
while (ps.peek()[0] == gar[0]) {
int[] gar2 = ps.remove();
result[gar2[1]] = second;
}
flowers.offer(second);
}
return result;
}
}
저 이거 100% 풀진 못했는데 써놓은게 있었거든요.. ㄱㄴ데 가든에 심취해서 실수로 여기에다까지 가든 베껴놔서 없어짐요;;;;;;;;; 어이가 없네요