
문제 설명
단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주했을 때, 완주하지 못한 선수의 이름을 return
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이법
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 |