본문 바로가기

Algorithm/Implementation

(C++) - 프로그래머스(Programmers) : 완주하지 못한 선수 답

반응형

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

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수��

programmers.co.kr

간단하게 hash 자료구조를 사용하는 문제였습니다.

 

풀이방법 : 

1. 동명이인이 있을 수 있으므로 동명이인에 대해 count++를 진행합니다.

2. 완주자명단을 읽으며 count--

3. 참여자 명단들 중 완주자명담을 제한 count가 0보다 큰 인원은 완주를 못한 것이 됩니다.

 

Code :

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
 
string solution(vector<string> participant, vector<string> completion) {
    map <string,int> m;
    for (int i = 0; i < participant.size(); i++) m[participant[i]]++;
    for (int i = 0; i < completion.size(); i++) m[completion[i]]--;
    for (int i = 0; i < participant.size(); i++if (m[participant[i]]>0return participant[i];
}