반응형
문제는 아래 사이트에서 풀었습니다.
programmers.co.kr/learn/courses/30/lessons/42576
풀이 및 코드
/*
* 풀이 요약
* map을 만들어서 기록한다.
*
* 무엇을 기록하나? 참가자명단을 이름:인원수 로 기록
* 기본적으로 이름:1 이런식으로 기록되고 동명이인의 경우엔 그 수(n) 만큼 이름:n 형태로 기록됨
*
* 완주자들의 이름을 key 로 하여 value를 하나씩 감소
*
* 숫자가 0이 되지 않는 사람이 완주하지 못한 선수
* */
import java.util.*;
public class Solution {
public String solution(String[] participant, String[] completion) {
/*
* 풀이 요약
* map을 만들어서 기록한다.
*
* 무엇을 기록하나? 참가자명단을 이름:인원수 로 기록
* 기본적으로 이름:1 이런식으로 기록되고 동명이인의 경우엔 그 수(n) 만큼 이름:n 형태로 기록됨
*
* 완주자들의 이름을 key 로 하여 value를 하나씩 감소
*
* 숫자가 0이 되지 않는 사람이 완주하지 못한 선수
* */
String answer = "";
//map 을 만든다.
Map<String, Integer> map = new HashMap<>();
// 참가자들을 맵에 집어넣는다.
// value는 기본적으로 1을 넣어주는데,
// 동명이인이 있을 수 있으므로 value에 1씩 증가시킨다.
for (int i = 0; i < participant.length; i++) {
map.put(participant[i], map.getOrDefault(participant[i], 0) + 1);
}
// 앞서 입력한 참가자 명단에서 완주자에 대한 처리를 한다.
// 완주했으면 해당 이름을 찾아 value 를 1 감소시킨다.
for (int i = 0; i < completion.length; i++) {
map.put(completion[i], map.getOrDefault(completion[i], 0) - 1);
}
//그럼 맵에서 값이 0이 아닌 애가 완주하지 못한 선수겠지?
for (String name : map.keySet()) {
if (map.get(name) != 0) {
answer = name;
}
}
return answer;
}
}//class
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[USACO] Swapity Swap JAVA (0) | 2021.02.23 |
---|---|
[USACO] Triangles JAVA (0) | 2021.02.22 |
[프로그래머스] 모의고사 JAVA (0) | 2021.02.21 |
[USACO] Daisy Chains (C언어) (0) | 2021.02.17 |
[USACO] Do You Know Your ABCs? (C언어) (0) | 2021.02.17 |
최근댓글