프로그래머스...어렵다..
Hash, 해쉬란?--설명 이동.
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
//해쉬맵 생성
Map<String, Integer> map = new HashMap<String, Integer>();
//for문으로 completion 배열을 돌려서 save변수에 저장해준다.
for(String save:completion){
//map.getOrDefault로 내가 찾고자 하는 키가 있는지 없는지의 유무를 체크해준다.
//없으면 기본값을 반환해주고, 있으면 +1을 해준다.
map.put(save,map.getOrDefault(save,0)+1);
}
//for문으로 participant 배열을 돌려서 save변수에 저장해준다.
for(String save:participant){
//map.containsKey를 사용하여 save에 키값의 유무를 확인한다.
if(map.containsKey(save)){
//키값이 존재하면 count에 -1을 해준다.
int count = map.get(save) - 1;
//-1을 한 후 count값이 0이라면 한개 존재했었던것이 사라짐으로 완주했다는것을 알 수 있다.
if(count == 0){
//완주했으므로 save변수에서 제거해준다.
map.remove(save);
}else{
//save key값에 count value를 저장해준다.
map.put(save,count);
}
}else{
answer = save;
}
}
return answer;
}
}
'Java > Programmers' 카테고리의 다른 글
[Lv.0]캐릭터의 좌표 (0) | 2023.01.17 |
---|---|
[Lv.0]삼각형의 완성조건(2) (0) | 2023.01.17 |
Stack/Queue - Level 2, 주식가격 (0) | 2021.01.14 |
Hash - Level 2, 위장 (0) | 2021.01.13 |
Hash - Level2, 전화번호 목록 (0) | 2021.01.13 |
댓글