반응형
안녕하세요.
배당 줍는 다람쥐입니다.
오늘 업로드하는 문제는 프로그래머스 Level 1, 완주하지 못한 선수입니다.
그러면 오늘도 문제 풀이 시작하겠습니다.
문제
사이트 주소는 아래와 같습니다.
https://programmers.co.kr/learn/courses/30/lessons/42576
문제풀이
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> hashmap = new HashMap<String, Integer>();
for(int i = 0; i < participant.length; i++){
if(hashmap.containsKey(participant[i])){
int cnt = hashmap.get(participant[i]);
hashmap.put(participant[i], cnt+1);
}
else
hashmap.put(participant[i], 1);
}
for(int i = 0; i < completion.length; i++){
if(hashmap.containsKey(completion[i])){
int cnt = hashmap.get(completion[i])-1;
hashmap.put(completion[i], cnt);
}
}
for(String key : hashmap.keySet()){
if(hashmap.get(key) == 1){
answer = key;
break;
}
}
return answer;
}
}
해당 문제의 핵심은 해시 사용하는 방법을 아는지를 물어보는 것 같습니다.
하여, 위와 같이 코드를 작성해보았습니다.
추가로, 저 같은 경우에는 containsKey 함수를 활용하여 문제를 풀이하였는데,
다른 분들의 풀이를 보니, getOrDefault라는 함수가 새로 나와서
제가 작성한 풀이보다 더 짧게 구현을 하셔서 아래에 해당 내용 짧게 적어봅니다.
// 함수설명 : 찾는 키가 존재한다면, 찾는 키의 값을 반환하고, 없다면 기본 값을 반환하는 메소드
getOrDefault(Object Key, V DefaultValue)
// 매개변수
// key : 값을 가져와야 하는 요소의 키
// defaultValue : 지정된 키로 매핑된 값이 없는 경우 반환되어야 하는 기본값
// Example
import java.util.HashMap;
public class MapGetOrDefaultEx{
public static void main(String arg[]) {
String [] alpha = {"a", "b", "c", "b"};
HashMap<String, Integer> hashmap = new HashMap<String, Integer>();
for(String key : alpha)
hashmap.put(key, hashmap.getOrDefault(key, 0) + 1);
System.out.println("결과 : " + hashmap);
}
}
해시를 사용하는 문제 같은 경우는 네이버/카카오 같이 프로그래머스나 구름으로 진행하는
코딩 테스트에서 1번 문제로 자주 나올 수 있으니,
여러 문제를 풀어보시는 것을 추천드립니다.:)
오늘도 제 블로그 글을 봐주셔서 감사합니다.
그럼 안뇽~
반응형
'IT > Java' 카테고리의 다른 글
[프로그래머스, Level 1] 부족한 금액 계산하기(JAVA) (0) | 2022.08.31 |
---|---|
[프로그래머스, Level 1] 신규 아이디 추천(JAVA) (0) | 2022.08.31 |
[프로그래머스, Level 1] 로또의 최고 순위와 최저 순위(JAVA) (0) | 2022.08.01 |
[프로그래머스, Level 2] 위장(JAVA)_Hash (0) | 2021.08.15 |
[프로그래머스, Level 2] 소수 찾기(JAVA) (0) | 2021.08.07 |