import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> map = new HashMap<>();
//참가자를 HashMap에 입력
for(String name : participant){
if( map.get(name) == null ){
map.put(name, 1);
}else{
int value = map.get(name) + 1;
map.put(name, value);
}
}
//완주자는 value를 1씩 감소
for(String name : completion){
int value = map.get(name) - 1;
map.put(name, value);
}
//value가 1인 사람이 완주못한애
String answer = "";
for(String name : map.keySet()){
if(map.get(name)==1) answer = name;
}
return answer;
}
}
*[프로그래머스] 완주하지 못한 선수
=완주하지 못한 1명을 찾아내는 문제
해시에서 key는 중복안됨
value는 따로 검색하는거 없어서 걍 다 해줘야 함
for(String name : map.keySet()){
}
이 형태가 가장 깔끔한 것 같다
HashMap Method
void clear() : Map의 모든 객체를 삭제
boolean containsKey(Object key) : 지정된 key 객체와 일치하는 Map의 key객체가 있는지 확인
boolean containsValue(Object value) : 지정된 value 객체와 일치하는 Map의 value객체가 있는지 확인
Set entrySet() : Map에 저장되어 있는 key-value쌍을 Map.Entry 타입의 객체로 저장한 "Set"으로 반환
boolean equals(Object o) : 동일한 Map인지 비교
Object get(Object key) : 지정한 key객체에 대응하는 value객체를 찾아서 반환
int hashCode() : 해시코드를 반환
boolean isEmpty() : Map이 비어있는지 확인
Set keySet() : Map에 저장된 모든 key객체를 반환한다.
Object put(Object key, Object Value) : Map에 value객체를 key객체에 연결(mapping)하여 저장
void putAll(Map t) : 지정된 Map의 모든 key-value쌍을 추가
Object remove(Object key) : 지정한 key객체와 일치하는 key-value 객체를 삭제
int size() : Map에 저장된 key-value쌍의 개수를 반환
Collection values() : Map에 저장된 모든 value 객체를 반환
'알고리즘 > 문제풀이' 카테고리의 다른 글
[정렬] K번째 수 (0) | 2018.09.19 |
---|---|
[Hash] 베스트앨범 (0) | 2018.09.18 |
의석이의 우뚝 선 산 (0) | 2018.09.14 |
쇠막대기 자르기 (0) | 2018.09.10 |
[BFS] 미로탐색 (0) | 2018.09.10 |