본문 바로가기

알고리즘/프로그래머스

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

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42576

 

프로그래머스

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

programmers.co.kr

🤔 문제분석

해시맵 2개를 이용하여 문제를 해결하면된다. 이름은 Key로 Value는 중복될 수 있기때문에 Integer 값을 두어 사람의 이름별로 카운팅한다.

참가자와 도착한 사람을 비교해서 만약 사람의 사람의 수가 1 이상이라면 그 사람의 값을 출력하면된다.

💻 코드

import java.util.HashMap;
import java.util.Map;

public class Solution {
    public String solution(String[] participant, String[] completion) {
        Map<String, Integer> p = new HashMap<>();
        Map<String, Integer> c = new HashMap<>();

        for(String a : participant)
        {
            p.put(a, p.getOrDefault(a, 1) + 1);
        }

        for(String a : completion)
        {
            c.put(a, c.getOrDefault(a, 1) + 1);
        }

        for(String key : c.keySet())
        {
            p.put(key, p.get(key) - c.get(key));
        }

        for(String key : p.keySet())
        {
            if(p.get(key) > 0)
            {
                return key;
            }
        }
        return "";
    }
}
728x90