본문 바로가기
알고리즘

[알고리즘] 완주하지 못한 선수

by keel_im 2021. 1. 26.
반응형

포인트

1.잘 구현을 할 수 있는가?

2. 해시를 이용하여 다시 구현을 해보았다.

🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 

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

using namespace std;

string solution(vector<string> participant, vector<string> completion) {
    sort(participant.begin(), participant.end());
    sort(completion.begin(), completion.end());

    int num = 0;

    for(int i=0; i < participant.size(); i++){
        if( participant[i] != completion[i]) return participant[i];
    }

    return participant[participant.size()];
}

해시를 사용한 방법

#include <bits/stdc++.h>

using namespace std;

string solution(vector<string> participant, vector<string> completion) {
    string answer = "";
    unordered_map<string, int> map;

    for(auto ele : participant){
        if(map.find(ele)==map.end()){
            map.insert({ele, 1});
        } else{
            map[ele]+=1;
        }
    }

    for(auto ele: completion){
        map[ele]-=1;
    }

    for(auto ele : participant){
        if(map[ele]>0) return ele;
    }
}

python

def solution(participant, completion):
    dict1 = dict()

    for ele in participant:
        dict1[ele] = dict1.get(ele, 0) + 1

    for ele in completion:
        dict1[ele] -= 1

    for i, ele in dict1.items():
        if ele > 0:
            return i
반응형

댓글