Algorithm/Programmers
[10μ£Όμ°¨] νλ‘κ·Έλλ¨Έμ€ μ΄μ€μ°μ μμν
do-oni
2021. 10. 2. 02:37
π»Q
μ΄μ€ μ°μ μμ νλ λ€μ μ°μ°μ ν μ μλ μλ£κ΅¬μ‘°λ₯Ό λ§ν©λλ€.
μ΄μ€ μ°μ μμ νκ° ν μ°μ° operationsκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λͺ¨λ μ°μ°μ μ²λ¦¬ν ν νκ° λΉμ΄μμΌλ©΄ [0,0] λΉμ΄μμ§ μμΌλ©΄
[μ΅λκ°, μ΅μκ°]μ return νλλ‘ solution ν¨μλ₯Ό ꡬνν΄μ£ΌμΈμ.
πβοΈ μ ν μ¬ν
- operationsλ κΈΈμ΄κ° 1 μ΄μ 1,000,000 μ΄νμΈ λ¬Έμμ΄ λ°°μ΄μ λλ€.
- operationsμ μμλ νκ° μνν μ°μ°μ λνλ λλ€.
- μμλ “λͺ λ Ήμ΄ λ°μ΄ν°” νμμΌλ‘ μ£Όμ΄μ§λλ€. - μ΅λκ°/μ΅μκ°μ μμ νλ μ°μ°μμ μ΅λκ°/μ΅μκ°μ΄ λ μ΄μμΈ κ²½μ°, νλλ§ μμ ν©λλ€.
- λΉ νμ λ°μ΄ν°λ₯Ό μμ νλΌλ μ°μ°μ΄ μ£Όμ΄μ§ κ²½μ°, ν΄λΉ μ°μ°μ 무μν©λλ€.
μ μΆλ ₯ μ μ€λͺ
16μ μ½μ ν μ΅λκ°μ μμ ν©λλ€. λΉμ΄μμΌλ―λ‘ [0,0]μ λ°νν©λλ€.
7,5,-5λ₯Ό μ½μ ν μ΅μκ°μ μμ ν©λλ€. μ΅λκ° 7, μ΅μκ° 5λ₯Ό λ°νν©λλ€.
π‘A
μ€λ¦μ°¨μμΌλ‘ μ λ ¬ν μ°μ μμνμ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬ν μ°μ μμνλ₯Ό λ§λ€κ³ String λ°°μ΄κ° operationμμ
substringμ μ¬μ©ν΄ IμΌλ κ°μ μ μ₯ν΄μ£Όκ³ D 1μΌλ μ΅λκ° μμ , D -1μΌλ μ΅μκ° μμ ν answer λ°°μ΄μμ κ°κ° κ°μ λ½μ μ μ₯νμ¬ λ°νν΄ μ€λ€.
import java.util.*; public class Solution { public int[] solution(String[] operations) { int[] answer = new int[2]; PriorityQueue<Integer> pq = new PriorityQueue<>(); //μ€λ¦μ°¨μ PriorityQueue<Integer> maxPq = new PriorityQueue<>(Collections.reverseOrder()); //λ΄λ¦Όμ°¨μ for (String o : operations) { if (o.substring(0,1).equals("I")) { int value = Integer.valueOf(o.substring(2)); pq.offer(value); maxPq.offer(value); } else if (!pq.isEmpty()) { //μ΅λκ° μμ if (o.equals("D 1")) { int value = maxPq.poll(); pq.remove(value); } //μ΅μκ° μμ else if (o.equals("D -1")) { int value = pq.poll(); maxPq.remove(value); } } } if (!pq.isEmpty()) { answer[0] = maxPq.peek(); answer[1] = pq.peek(); } return answer; } }β