https://programmers.co.kr/learn/courses/30/lessons/42576
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수��
programmers.co.kr
해쉬유형에 있어서 이 문제를 선택해서 풀었다. 자바로 해쉬를 활용해본 기억은 알고리즘 수업시간과 자바 이론 수업때 예제를 따라 해본적 밖에 없어서 문법이 기억나지 않아 블로그를 참고했다.
hash.getorDefault()메소드는 해쉬에 키에 해당하는 값이 존재하면 그 값을 쓰고 그렇지 않다면 디폴트 값인 두번째 인자(이 문제에서는 0) 으로 해주는 기능을 한다.
해쉬에 쌍을 넣을 때 put메소드를 사용한다.
풀이
import java.util.*;
public class 완주하지못한_선수 {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> hash = new HashMap<>();
for(String s :participant){
hash.put(s,hash.getOrDefault(s,0)+1);
}
for(String s: completion){
hash.put(s,hash.get(s)-1);
}
for(String key:hash.keySet()){
if(hash.get(key) !=0) return key;
}
return "";
}
}
'IT > 알고리즘' 카테고리의 다른 글
프로그래머스 문자열 내 마음대로 정렬하기 (2) | 2020.05.30 |
---|---|
프로그래머스 H-Index (0) | 2020.05.19 |
프로그래머스 문자열 내림차순으로 배치하기 (0) | 2020.05.17 |
프로그래머스 모의고사 (0) | 2020.05.16 |
프로그래머스 괄호변환 (0) | 2020.05.16 |