본문 바로가기
알고리즘/코딩테스트 고득점kit

[해시] 완주하지 못한 선수

by sum_mit45 2022. 3. 13.
728x90
반응형

1. 문제요약

- 마라톤 선수들의 이름이 담긴 participant, 완주한 completion

- 완주하지 못한 선수의 이름 return 

 

2. 풀이

- participant에는 있지만 completion에는 없는 이름이 완주하지 못한 선수

- 두 vector를 이름순으로 정렬하고, 0번째 index부터 이름을 검사한다. participant과 completion에 이름이 다른 순간이 participant에만 이름이 있는 것이므로, 그 이름을 return 한다. 

 

3. 코드

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

string solution(vector<string> participant, vector<string> completion) {
    string answer = "";
    
    sort(participant.begin(), participant.end(), greater<string>());
    sort(completion.begin(), completion.end(), greater<string>());
    
    int idx=0;
    for(int i=0; i<participant.size(); i++){
        if (participant[i] == completion[idx]) {
            idx++;
        }
        else{
            answer = participant[i]; 
            return answer;
        }
    }
}

 

4. 리뷰

- 정렬과 for문을 이용한 검색으로 작성해서 해시를 사용하지 않은 것 같다. -> 이 부분 더 찾아보기

728x90
반응형

'알고리즘 > 코딩테스트 고득점kit' 카테고리의 다른 글

[해시] 위장  (0) 2022.03.14