콘솔창 & 윈도우창/코딩 테스트

프로그래머스 LV.1 완주하지 못한 선수

뽀또치즈맛 2024. 11. 10. 18:53

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

해당 문제는 크게 2가지 해법을 가진다.

1. sort를 통한 단순 비교로 계산할 수 있는 경우

2. 해쉬맵을 이용하여 통과한 선수를 제거하는 경우

 

sort는 비교적 쉽다.

STL을 익숙하게 사용하기 위해 다음과 같이 코드를 짰다.

 

#include <string>
#include <vector>
#include <unordered_map>

using namespace std;

string solution(vector<string> participant, vector<string> completion) {
    string answer = "";
    
    unordered_map <string, int> players;
    
    for(auto player : participant)
    {
        if(players.find(player) == players.end()) players.insert(make_pair(player, 1));
        else players[player]++;
    }
    
    for(auto player : completion){
        players[player]--;
    }
    
    for(auto player : participant){
        if(players[player] > 0) {
            answer = player;
            break;
        }
    }
        
    
    
    return answer;
}