[프로그래머스] 완주하지못한 선수(JAVA)
문제
내 코드
public String solution(String[] participant, String[] completion) {
//1
Map<String, Integer> completionMap = new HashMap<String, Integer>();
//2
for(String s : completion)
completionMap.put(s, completionMap.getOrDefault(s, 0)+1);
//3
for(int i=0; i<participant.length; i++) {
if(!completionMap.containsKey(participant[i]))
return participant[i];
else {
completionMap.put(participant[i], completionMap.get(participant[i])-1);
}
}
//4
for(String key : completionMap.keySet())
if(!(completionMap.get(key) == 0)) return key;
return "";
}
문제풀이
- 완주자 데이터를 담을 HashMap completionMap 선언
- for 문을 돌면서 파라미터 completion을 HashMap에 담는다.(key: 선수 이름, value: 해당이름을 갖는 선수 count)
- 참가자 파라미터 participant를 for문을 돌면서 완주자 completionMap에 포함되어 있는지 판별 한다.
3-1. 포함되어 있지 않으면 완주를 못한 선수! 바로 return 한다.
3-2. 포함되어 있으면 completionMap에 해당 value 값을 1 감소 시킨다. - 3-2에서 완주한 선수는 1씩 감소 시켰으니, for 문을 돌면서 completionMap의 value값이 0이 아닌 선수를 return 한다.
Author And Source
이 문제에 관하여([프로그래머스] 완주하지못한 선수(JAVA)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jess29/프로그래머스-완주하지못한-선수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)