알고리즘/문제풀이

[Hash] 완주하지 못한 선수

lipnus 2018. 9. 17. 20:13
반응형

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