https://programmers.co.kr/learn/courses/30/lessons/425762
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> map = new HashMap<>();
for (String player : participant) {
map.put(player, map.getOrDefault( player, 0) + 1);
}
for (String complete : completion) {
int left = map.get(complete) - 1;
if (left == 0) {
map.remove(complete);
} else {
map.put(complete, map.get(complete) - 1);
}
}
return map.keySet().iterator().next();
}
}
|
cs |
1. input에서 output를 비교하는 문제이다.
2. 값을 넣을 map을 선언하고 값이 있는지 없는지를 비교한다.
3. map.getOrDefault를 유용하게 사용하자. 값이 없으면 default있으면 값을 꺼내올 수 있다.
4. 완주 선수의 값을 map에서 꺼내온다. 모두 값이 없어졌으면 map에서 값을 지운다.
5. 마지막으로 map의 key값들을 꺼내온다.
'알고리즘' 카테고리의 다른 글
K th largest element in an Array (0) | 2020.08.25 |
---|---|
Unique한 문자인가 (0) | 2020.08.24 |
String to Num (0) | 2020.08.24 |
정수 내림차순으로 배치하기 (0) | 2020.08.22 |
같은 숫자는 싫어 (0) | 2020.08.20 |