[프로그래머스 - 자바(JAVA)] 42 : 완주하지 못한 선수

서예진·2024년 3월 22일
0

목차

🧩 완주하지 못한 선수

🧩 완주하지 못한 선수 : Lv.1


▼ 문제

출처 : 프로그래머스 코딩테스트 연습 > 해시 > 완주하지 못한 선수

▼ 내 풀이

  • HashMap을 사용하여 문제를 풀었다.
  • 처음에는 list를 활용할까도 했었지만 굳이 그 이름을 대조할 필요는 없어 보여서 HashMap을 통해 인원수로 접근하고자 했다.
import java.util.*;
class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        
        // 참가자 이름과 인원 수를 저장하는 HashMap 생성
        Map<String, Integer> map = new HashMap<>();
        
        // 참가자 명단을 HashMap에 저장 (이름이 중복될 경우 인원 수를 증가시킴)
        for (String p : participant) {
            map.put(p, map.getOrDefault(p, 0) + 1);
        }

        // 완주자 명단을 HashMap에서 제거 (인원 수를 감소시킴)
        for (String c : completion) {
            map.put(c, map.get(c) - 1);
        }

        // 남은 인원이 1명인 참가자가 완주하지 못한 사람
        for (String key : map.keySet()) {
            if (map.get(key) == 1) {
                answer = key;
                break;
            }
        }
        
    
        return answer;
    }
}
profile
안녕하세요

0개의 댓글