Coding Test

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

SouthernDuck 2023. 6. 8. 11:44
728x90
import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        
        String answer = "";     
        
        Map <String, Integer> map1 = new HashMap <>(); // 참가자 저장할 map1
        Map <String, Integer> map2 = new HashMap <>(); // 완주자 저장할 map2
        
        for(String key : participant) { // 참가자는 key, 인원수는 value
            // getOrDefault(): map에 key가 없으면 기본값(0) 지정
            map1.put(key, map1.getOrDefault(key, 0) + 1); // 인원 세려고 +1
        }
        
        for(String key : completion) { // 위와 동일
            map2.put(key, map2.getOrDefault(key, 0) + 1);
        }
        
        // equals()은 효율성 통과, "=="은 실패
        // equals(): 단순히 문자열의 값을 비교, "==": 각 객체들의 주소값을 비교
      	for (String key : participant) {
            if(!map1.get(key).equals(map2.get(key))) { // get(): value 출력
                answer = key; // 낙오자 색출
            }
	}
        
        return answer;
    }
}

 

728x90
반응형