C++/프로그래머스

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

MayQ 2020. 11. 18. 17:45

문제 풀이

#include <string>
#include <algorithm>
#include <vector>

using namespace std;

string solution(vector<string> participant, vector<string> completion) {
	string answer = "";
    
    // 우선 참가자와 완주자를 정렬한다.
	sort(participant.begin(), participant.end());
    	sort(completion.begin(), completion.end());
 	
    // 비교를 위한 인덱스 생성
	int idx = 0;
    
    // 참가자 배열을 순회하면서
	for (auto it : participant) {
    	// 참가자와 완주자가 같다면 다음 완주자를 확인하고
		if (it == completion[idx]) idx++;
    
		// 참가자와 완주자가 다르다면 해당 참가자가 완주하지 못한 참가자이므로 리턴
		// 위에서 미리 정렬을 했기 때문에 값이 다르면 해당 사람이 문제의 정답이 된다.
		else return it;
	}
}

 

문제 링크

programmers.co.kr/learn/courses/30/lessons/42576?language=cpp

 

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

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

programmers.co.kr