[프로그래머스] 해시 > 완주하지 못한 선수

박민주·2022년 2월 19일
0

Programmers

목록 보기
11/13

해시 카테고리에 있어서 해시를 사용해야 하는 줄 알고 복잡하게 생각했는데,
딱히 해시를 사용하지 않아도 되었다

로직

  1. 정렬해서 비교하기 위해 sort()
  2. completion이 end()에 도달하면, participant의 마지막 원소가 완주하지 못한 선수
    혹은 sort 상태에서 비교했을 때 두 원소가 다르면 iter_participant가 가리키는 게 완주하지 못한 선수

전체 코드

// 완주하지 못한 선수 https://programmers.co.kr/learn/courses/30/lessons/42576
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

string solution(vector<string> participant, vector<string> completion) {
    string answer = "";
   
    sort(participant.begin(), participant.end());
    sort(completion.begin(), completion.end());
        
    vector<string>::iterator iter_participant = participant.begin();
    vector<string>::iterator iter_completion = completion.begin();
    
    for(; iter_participant != participant.end(); iter_participant++, iter_completion++) {
        if(iter_completion == completion.end() || *iter_participant != *iter_completion) {
            answer = *iter_participant;
            break;
        }
    }

    return answer;
}
profile
Game Programmer

0개의 댓글