알고리즘

[프로그래머스] 완주하지 못한 선수 - java

육빔 2024. 8. 11. 16:42
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=java

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명

 

해쉬맵을 사용하여 카운트를 해주고 다시 빼준 다음 0이 아닌 경우만 출력해주는 간단한 문제

 

몰랐던 점

if(map.containsKey(s)){
	map.put(s, map.get(s) + 1);
}else{
	map.put(s, 1);

 

위 코드를 getOrDefault 함수로 아래 한줄로 표현가능하다.

map.put(p, map.getOrDefault(p, 0) + 1);

 

 

문제 풀이

import java.util.*;
class Solution {
    public String solution(String[] participant, String[] completion) {
        HashMap<String, Integer> map = new HashMap<>();
        
        for(String s : participant){
            if(map.containsKey(s)){
                map.put(s, map.get(s) + 1);
            }else{
                map.put(s, 1);
            }
        }
        
        for(String s : completion){
            map.put(s, map.get(s) - 1);
        }
        String result = "";
        for(String key : map.keySet()){
            if(map.get(key) != 0){
                return key;
            }
        }
        return result;
    }
}
728x90
반응형