-
[Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ kit ์ด์ค์ฐ์ ์์ํAlgo Rhythm๐บ๐/Programmers 2020. 7. 16. 02:25
๐ ๋ฌธ์ ์ค๋ช
์ด์ค ์ฐ์ ์์ ํ๋ ๋ค์ ์ฐ์ฐ์ ํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋งํฉ๋๋ค.
๋ช ๋ น์ด
์์ ํ(๋์ด)
I ์ซ์
ํ์ ์ฃผ์ด์ง ์ซ์๋ฅผ ์ฝ์ ํฉ๋๋ค.
D 1
ํ์์ ์ต๋๊ฐ์ ์ญ์ ํฉ๋๋ค.
D -1
ํ์์ ์ต์๊ฐ์ ์ญ์ ํฉ๋๋ค.
์ด์ค ์ฐ์ ์์ ํ๊ฐ ํ ์ฐ์ฐ operations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฐ์ฐ์ ์ฒ๋ฆฌํ ํ ํ๊ฐ ๋น์ด์์ผ๋ฉด [0,0] ๋น์ด์์ง ์์ผ๋ฉด [์ต๋๊ฐ, ์ต์๊ฐ]์ return ํ๋๋ก solution ํจ์๋ฅผ ๊ตฌํํด์ฃผ์ธ์.
์ ํ์ฌํญ
-
operations๋ ๊ธธ์ด๊ฐ 1 ์ด์ 1,000,000 ์ดํ์ธ ๋ฌธ์์ด ๋ฐฐ์ด์ ๋๋ค.
-
operations์ ์์๋ ํ๊ฐ ์ํํ ์ฐ์ฐ์ ๋ํ๋ ๋๋ค.
-
์์๋ “๋ช ๋ น์ด ๋ฐ์ดํฐ” ํ์์ผ๋ก ์ฃผ์ด์ง๋๋ค.- ์ต๋๊ฐ/์ต์๊ฐ์ ์ญ์ ํ๋ ์ฐ์ฐ์์ ์ต๋๊ฐ/์ต์๊ฐ์ด ๋ ์ด์์ธ ๊ฒฝ์ฐ, ํ๋๋ง ์ญ์ ํฉ๋๋ค.
-
๋น ํ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ผ๋ ์ฐ์ฐ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ, ํด๋น ์ฐ์ฐ์ ๋ฌด์ํฉ๋๋ค.
๐ฏ ์ด๋ป๊ฒ ํ์๋
import java.util.Comparator; import java.util.PriorityQueue; class Solution { public int[] solution(String[] operations) { int[] answer = new int[2]; PriorityQueue<Integer> minHeap = new PriorityQueue<>(); PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Comparator.reverseOrder()); for(int i = 0; i < operations.length; i++) { if(operations[i].startsWith("I")) { int n = Integer.parseInt(operations[i].split(" ")[1]); minHeap.offer(n); maxHeap.offer(n); } if(operations[i].equals("D 1") && !maxHeap.isEmpty() && !minHeap.isEmpty()) { minHeap.remove(maxHeap.poll()); } if(operations[i].equals("D -1") && !maxHeap.isEmpty() && !minHeap.isEmpty()) { maxHeap.remove(minHeap.poll()); } } answer[0] = (maxHeap.isEmpty()) ? 0 : maxHeap.poll(); answer[1] = (minHeap.isEmpty()) ? 0 : minHeap.poll(); return answer; } }
๐ง ์ ์ ๋ ๊ฒ ํ์๋
๋ด ํ์ด๋ฒ์ ํต์ฌ์ '์ต๋ ํ๊ณผ ์ต์ ํ ๋ ๊ฐ๋ฅผ ๋ง๋ ํ ์ฝ์ ์ ํ๋ ์ต์๊ฐ/ ์ต๋๊ฐ์ ์ญ์ ๋ฅผ ํ๋ ๋ ํ ๋ชจ๋ ๋๊ฐ์ ์์ ์ ํด์ฃผ๋ ๊ฒ'์ด๋ค.
์ฝ๋๋ฅผ ๋ณด๋ฉด ์ฝ์ ๋์์ ๊ฒฝ์ฐ ์ต๋ ํ, ์ต์ ํ ๋ชจ๋ ์ฝ์ ํ๋ค. ์ต๋๊ฐ ์ญ์ ์ ๊ฒฝ์ฐ ์ต๋ ํ์์ ์ต๋๊ฐ์ ์ญ์ ํ๊ณ ๊ทธ ๊ฐ์ ์ต์ ํ์์ ์ญ์ ํ๋ค. ์ต์๊ฐ ์ญ์ ์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
๋ง์ง๋ง์ผ๋ก ํ์ด ๋น์ด์์ผ๋ฉด 0 ๊ทธ๋ ์ง ์์ผ๋ฉด ์ต๋๊ฐ ํน์ ์ต์๊ฐ์ ๋ฐฐ์ด์ ๊ฐ์ผ๋ก ๋ฃ๋๋ค.
๐ ๋ฌด์์ ๋ฐฐ์ ๋
Level 3์ธ๋ฐ ์๊ฐ๋ณด๋ค ์ฌ์ ๋ค. ์ผํธ ๐๐๐
'Algo Rhythm๐บ๐ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
-