728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

코드
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> map = new HashMap<String, Integer>();
// 참가한 선수를 map에 넣기 만약 같은 이름의 선수가 있다면 2,3,4 이런식으로 숫자가 계속 증가됨
for (String player : participant) {
map.put(player, map.getOrDefault(player, 0) + 1);
}
// 완주한 선수가 있다면 해당 key 값의 value를 -1 시킴
// 같은 이름의 선수가 2명 3명이여도 완주한 선수의 이름이 참가한 선수만큼 있다면 0이 되어짐
for (String player : completion) {
map.put(player, map.get(player)-1);
}
// 0이 아닌경우는 완주하지 못한 선수이므로 answer에 key 값을 추가하기
for (String key : map.keySet()) {
if(map.get(key) != 0) {
answer += key;
}
}
return answer;
}
코드에 대한 설명은 주석에서 다 하기 때문에 추가로 설명을 하지는 않겠다.
728x90
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] 분수의 덧셈 / 유클리드 호제법(최대공약수 구하기) (0) | 2023.01.30 |
---|---|
[프로그래머스] 단어 변환 / DFS/BFS(그래프탐색) (0) | 2022.08.15 |
[백준] 14425번 문자열 집합 / Hash (0) | 2022.08.11 |
[프로그래머스] 위장 / Hash (0) | 2022.08.10 |
[프로그래머스] 최대공약수와 최소공배수 구하기 / 유클리드 호제법 (0) | 2022.08.09 |