알고리즘
[알고리즘] 완주하지 못한 선수
keel_im
2021. 1. 26. 13:18
반응형
포인트
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
반응형