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

이한솔·2023년 10월 20일
0

프로그래머스_레벨1

목록 보기
54/65
post-thumbnail

✨️ 문제 설명

: 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

 -> 자세한 내용 보러가기

🎲 자바 풀이

import java.util.*;
class Solution {
    public String solution(String[] participant, String[] completion) {
        //참가자 중에는 동명이인이 있을 수 있음
        //Map을 이용하여 참가자 이름이 나온 횟수를 넣고 0보다 클 경우 미완주 선수
        
        Map<String, Integer> map = new HashMap<>();
        //참가자의 이름이 나온만큼 횟수 증가
        for(String part : participant){
            map.put(part, map.getOrDefault(part, 0) + 1);
        }
        
        //completion에 이름이 나온 경우 -1
        for(String com : completion){
            map.put(com, map.get(com) -1);
        }
        
        for(String key : map.keySet()){
            if(map.get(key) > 0) return key;
        }
        
        return "";
    }
}

풀이 설명

: 제한사항에 동명이인이 있을 수도 있다고 하였으므로, 각 참가자들의 이름과 나온 횟수를 저장할 HashMap을 선언한다.
: 단 한명만이 완주를 하지 못하였으므로, 참가자 이름이 completion에 있을 경우 -1을 한다. 만약 남아있을 경우 완주하지 못한 선수이므로 반환한다.
profile
개인 공부용

0개의 댓글