[프로그래머스] 해시 - 완주하지 못한 선수 (Level 1)
완주하지 못한 선수
풀이과정
- dict 딕셔너리를 만든다.
- participant 리스트를 for문을 돌려 선수의 이름이 dict에 key로 있으면 해당 key의 value에 1을 더한다. 원소가 dict에 key로 없으면 선수의 이름을 key로, 1을 value로 갖는 요소를 추가한다.
- completion 리스트를 for문을 돌려 선수의 이름이 dict에 key로 있으면 해당 key의 value에 1을 뺀다. 이 때 value가 0이 되면 dict에서 선수의 이름이 key인 요소를 제거한다.
- 마지막까지 dict에 key로 남아있는 값이 답이 된다.
Python Code
def solution(participant, completion):
answer = ''
dict = {}
for i in participant:
if i in dict:
dict[i] += 1
else:
dict[i] = 1
for i in completion:
if i in dict:
dict[i] -= 1
if dict[i] == 0:
del dict[i]
answer = list(dict.keys())[0]
return answer
Java Code
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> players = new HashMap<String, Integer>();
for(String name: participant){
if(players.containsKey(name)){
players.put(name, players.get(name)+1);
}else{
players.put(name, 1);
}
}
for(String name: completion){
players.put(name, players.get(name)-1);
}
for (HashMap.Entry<String, Integer> entry : players.entrySet()) {
if(entry.getValue() >= 1) {
answer = entry.getKey();
}
}
return answer;
}
}
Author And Source
이 문제에 관하여([프로그래머스] 해시 - 완주하지 못한 선수 (Level 1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@imyo/프로그래머스-해시-환주하지-못한-선수-Level-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)