https://programmers.co.kr/learn/courses/30/lessons/42576?language=java
풀이
Map을 이용하여 풀이
1. Participant를 탐색하면서 map에 이름이 있으면 map[key]+=1로 수정,
없으면 map[key]=1로 할당
2. completion을 탐색하면서 해당 이름을 key로 가지고 있는 map의 value를 -1, value가 0이면 map에서 key삭제
3. map을 탐색(2번이 정상적으로 구현되었다면 한개의 key만 남아있음) 남아있는 key의 값을 return
* List로 먼저 풀어봤지만 시간 초과 -> Map은 탐색에서 성능이 우수하기 때문에
* Java를 사용해본적이 없어 함수의 유무나 사용방법에 어려움이 있음
ex) map에 하나의 key만 남아있는 상황이지만, 다른 방법이 생각나지 않아 for문을 이용하여 key를 확인
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Map<String, Integer> map = new HashMap<>();
for(String name:participant){
if(map.containsKey(name))
map.put(name, map.get(name)+1);
else
map.put(name, 1);
}
for(String name:completion){
if(map.containsKey(name))
map.put(name, map.get(name)-1);
}
for(String key: map.keySet()){
if(map.get(key)>0){
answer=key;
break;
}
}
return answer;
}
}
'알고리즘' 카테고리의 다른 글
Programmers - 없어진 기록 찾기 (0) | 2021.11.04 |
---|---|
Programmers - NULL 처리하기(SQL) (0) | 2021.11.04 |
Programmers - 입양 시각 구하기(1)(SQL) (0) | 2021.11.02 |
Programmers - 동명 동물 수 찾기(SQL) (0) | 2021.11.02 |
Programmers - 중복 제거하기(SQL) (0) | 2021.11.02 |
댓글