문제 설명
단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주했을 때, 완주하지 못한 선수의 이름을 return
https://school.programmers.co.kr/learn/courses/30/lessons/42576
문제 풀이법
map을 사용하면 간단하게 풀 수 있다
우선 participant 벡터를 순회하면서 map에 이름을 key값으로 하여 value에는 1을 넣어준다
이후 completion 벡터를 순회하면서 map의 key에 해당하는 value를 0으로 한다
모든 처리를 끝냈을 때, map의 value 값이 1이면 완주하지 못한 선수이므로 해당 값의 key를 return 한다
소스 코드
#include <string>
#include <vector>
#include <map>
using namespace std;
string solution(vector<string> participant, vector<string> completion) {
string answer = "";
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]]--;
}
map<string, int>::iterator it;
for (it = m.begin(); it != m.end(); it++) {
if (it->second == 1)
return it->first;
}
return answer;
}
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 2단계 - [1차] 뉴스 클러스터링 (0) | 2024.02.16 |
---|---|
[백준] 4485 녹색 옷 입은 애가 젤다지? (0) | 2024.02.15 |
[프로그래머스] 2단계 - 가장 큰 수 (0) | 2024.02.07 |
[프로그래머스] 2단계 - 피로도 (0) | 2024.02.06 |
[프로그래머스] 2단계 - 기능개발 (0) | 2024.02.06 |