저번에 디피 맛보기 해서 오늘은 HASHMAP 뿌셔보려고 프로그래머스를 켰다
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Map <String,Integer> hashmap = new HashMap<>();
int calculator = 0;
for(String each_p : participant){ // 출전한 선수리스트
if(hashmap.get(each_p)==null) // 중복된 이름이 아직 없는 경우
hashmap.put(each_p,1);
else{ // 중복된 선수 이름이 있을 경우
calculator = hashmap.get(each_p); // 기존에 있던 값을 가져와서
hashmap.put(each_p,calculator+1); // 그 값을 1 키워준 뒤 다시 저장
}
}
for(String each_c : completion){ // 완주한 선수 리스트
calculator = hashmap.get(each_c); // 리스트에 있는 이름들을 hashmap에서
hashmap.put(each_c,calculator-1); // 찾아서 1씩 빼준 뒤 다시 저장
} // 그럼 한명빼고 다 0이 될 것임
for(String key : hashmap.keySet()){ // hashmap의 key값을 불러와서 for문
if(hashmap.get(key)==1){ // hashmap에 key 넣었을 때 1이 나오면
answer=key; // 그놈이 아직 완주 못한놈
break; // 끝!
}
}
return answer; // 답 리턴
}
}
해시맵 사용법을 잘 몰라서 구글링해서 다른분 코드 보고 손코딩해봤더니 이해가 더 빠른것 같다.!
거의 외운 수준이긴한데 바로 짜지는게 뿌듯..,.,
처음 써본 문법이
for(String each_p : participant){ }
for문 이렇게 쓰는거.. 자바에서는 잘 안썼는데 편한 것 같다
그리고 hashmap 자체를 안써봤는데 입력이 put 출력이 get 리스트셋 뽑아오는게 keySet
코테볼 때 다 외우기보다는 api 문서 보는 연습도 해야돼서 혼자 하다가 막히면 api 문서 참고했다.
손코딩하고나서 api 문서 보니까 기억을 더듬어서 찾게된다. 그래서인지 찾기도 더 수월한 것 같다.
hashmap 자바 api 문서
'알고리즘' 카테고리의 다른 글
[프로그래머스/Java] 위장 - Hashmap, 조합 (0) | 2020.09.05 |
---|---|
[프로그래머스/Java] 전화번호목록 - Hashmap 풀이 (0) | 2020.09.05 |
[추천] 알고리즘 사이트 추천 - hackerrank (0) | 2020.09.04 |
[백준/2914] 저작권 (0) | 2020.09.03 |
[백준/1010] 다리놓기 - 동적계획법/메모이제이션/top-down (0) | 2020.09.03 |