programmers : https://programmers.co.kr/learn/courses/30/parts/12077

 

해시 level1 완주하지 못한 선수 문제입니다.

 

해시에 대한 문제의 경험이 부족하고 map 이나 set 같은 STL도 사용경험이 없어서

단순히 문제를 해결할 수 있는 방법을 고려했습니다.

 

두 벡터를 모두 정렬해서 끝까지 탐색하는 방법을 사용했습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
 
string solution(vector<string> participant, vector<string> completion) {
    string answer = "";
    
    // 모든 사람 중에서 단 한명만 완주를 못했다 이 사람을 찾으면 된다
    // 10만명을 n^2 으로 검사하게 되면, 시간초과가 발생하므로 nlogn * 2 로 풀어본다
    sort(participant.begin(), participant.end());
    sort(completion.begin(), completion.end());
    
    int len = participant.size();
    for(int i = 0; i<len; i++){
        if(participant[i] != completion[i]){
            answer = participant[i];
            break;
        }
    }
    
    return answer;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

'algorithm > programmers' 카테고리의 다른 글

programmers 가장 큰 수  (0) 2020.03.10
programmers K번째수  (0) 2020.03.10
programmers 여행경로  (0) 2020.03.10
programmers 단어 변환  (0) 2020.03.09
programmers 타겟 넘버  (0) 2020.03.09

+ Recent posts