๋ฐ์ํ
https://programmers.co.kr/learn/courses/30/lessons/42628
๋ฌธ์
์ด์ค ์ฐ์ ์์ ํ๋ ๋ค์ ์ฐ์ฐ์ ํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋งํฉ๋๋ค.
๋ช ๋ น์ด | ์์ ํ(๋์ด) |
I ์ซ์ | ํ์ ์ฃผ์ด์ง ์ซ์๋ฅผ ์ฝ์ ํฉ๋๋ค. |
D 1 | ํ์์ ์ต๋๊ฐ์ ์ญ์ ํฉ๋๋ค. |
D -1 | ํ์์ ์ต์๊ฐ์ ์ญ์ ํฉ๋๋ค. |
์ด์ค ์ฐ์ ์์ ํ๊ฐ ํ ์ฐ์ฐ operations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฐ์ฐ์ ์ฒ๋ฆฌํ ํ ํ๊ฐ ๋น์ด์์ผ๋ฉด [0,0] ๋น์ด์์ง ์์ผ๋ฉด [์ต๋๊ฐ, ์ต์๊ฐ]์ return ํ๋๋ก solution ํจ์๋ฅผ ๊ตฌํํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- operations๋ ๊ธธ์ด๊ฐ 1 ์ด์ 1,000,000 ์ดํ์ธ ๋ฌธ์์ด ๋ฐฐ์ด์ ๋๋ค.
- operations์ ์์๋ ํ๊ฐ ์ํํ ์ฐ์ฐ์ ๋ํ๋
๋๋ค.
- ์์๋ “๋ช ๋ น์ด ๋ฐ์ดํฐ” ํ์์ผ๋ก ์ฃผ์ด์ง๋๋ค.- ์ต๋๊ฐ/์ต์๊ฐ์ ์ญ์ ํ๋ ์ฐ์ฐ์์ ์ต๋๊ฐ/์ต์๊ฐ์ด ๋ ์ด์์ธ ๊ฒฝ์ฐ, ํ๋๋ง ์ญ์ ํฉ๋๋ค.
- ๋น ํ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ผ๋ ์ฐ์ฐ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ, ํด๋น ์ฐ์ฐ์ ๋ฌด์ํฉ๋๋ค.
ํ์ด
TreeMap
์ผ๋ก ๊ฐ๋จํ ๊ตฌํโผ๏ธ
https://hyeyun.tistory.com/entry/์๊ณ ๋ฆฌ์ฆ-Java-TreeMap
TreeMap ์ ์๋์ผ๋ก ํฐ ๊ฐ๋ถํฐ ์์ ๊ฐ์ผ๋ก ์ ๋ ฌํด์ฃผ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด๊ณผ ์์ด ๊ตฌํ๊ฐ๋ฅ ๐โ๏ธ
์ฝ๋
import java.util.LinkedList;
import java.util.List;
import java.util.TreeMap;
public class ์ด์ค์ฐ์ ์์ํ {
public static int[] solution(String[] operations) {
TreeMap<Integer, Integer> treeMap = new TreeMap<>();
for(String o : operations){
String[] command = o.split(" ");
if(command[0].equals("I")){
// ์ฝ์
int x = Integer.parseInt(command[1]);
treeMap.put(x, treeMap.getOrDefault(x, 0)+1);
}
else{
if(treeMap.isEmpty())
continue;
if(command[1].equals("1")){
// ์ต๋๊ฐ ์ญ์
int max = treeMap.lastKey();
if(treeMap.get(max) == 1)
treeMap.remove(max);
else
treeMap.put(max, treeMap.get(max)-1);
}
else{
// ์ต์๊ฐ ์ญ์
int min = treeMap.firstKey();
if(treeMap.get(min) == 1)
treeMap.remove(min);
else
treeMap.put(min, treeMap.get(min)-1);
}
}
}
if(treeMap.isEmpty())
return new int[]{0,0};
else
return new int[]{treeMap.lastKey(), treeMap.firstKey()};
}
public static void main(String[] args) {
String[] operations = {"I 7","I 5","I -5","D -1"};
int[] answer = solution(operations);
for(int a : answer){
System.out.println(a);
}
}
}
728x90
๋ฐ์ํ
'์๊ณ ๋ฆฌ์ฆ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ๋จ์ด ๋ณํ (0) | 2021.09.29 |
---|---|
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ๋ฑ๊ตฃ๊ธธ (0) | 2021.09.29 |
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] 2 X n ํ์ผ๋ง (0) | 2021.09.28 |
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ๋ถ๋ ์ฌ์ฉ์ (0) | 2021.09.28 |
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ๋ณด์ ์ผํ (0) | 2021.09.23 |