이전풀이
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool comp(string a, string b) {
return a > b;
}
string solution(vector<string> participant, vector<string> completion) {
string answer = "";
sort(participant.begin(), participant.end(), comp);
sort(completion.begin(), completion.end(), comp);
for (int i = 0; completion.size(); i++) {
if (participant[i] != completion[i]) {
answer = participant[i];
break;
}
}
if (answer.empty()) {
answer = participant[participant.size() - 1];
}
return answer;
}
정확성 테스트
테스트 1 〉 통과 (0.01ms, 3.97MB)
테스트 2 〉 통과 (0.01ms, 3.96MB)
테스트 3 〉 통과 (0.65ms, 3.88MB)
테스트 4 〉 통과 (1.36ms, 3.96MB)
테스트 5 〉 통과 (1.39ms, 3.95MB)
효율성 테스트
테스트 1 〉 통과 (85.62ms, 14.4MB)
테스트 2 〉 통과 (132.46ms, 19.7MB)
테스트 3 〉 통과 (172.99ms, 23.2MB)
테스트 4 〉 통과 (197.24ms, 25.3MB)
테스트 5 〉 통과 (196.17ms, 25.4MB)
채점 결과
정확성: 50.0
효율성: 50.0
합계: 100.0 / 100.0
다시풀기
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(vector<string> participant, vector<string> completion) {
string answer = participant.back();
sort(participant.begin(),participant.end());
sort(completion.begin(),completion.end());
for(int i=0;i<participant.size();i++){
if(participant[i]!=completion[i]){
answer=participant[i];
break;
}
}
return answer;
}
정확성 테스트
테스트 1 〉 통과 (0.02ms, 3.76MB)
테스트 2 〉 통과 (0.02ms, 3.95MB)
테스트 3 〉 통과 (0.28ms, 3.83MB)
테스트 4 〉 통과 (0.53ms, 3.79MB)
테스트 5 〉 통과 (0.60ms, 3.9MB)
효율성 테스트
테스트 1 〉 통과 (36.61ms, 14.2MB)
테스트 2 〉 통과 (57.06ms, 19.7MB)
테스트 3 〉 통과 (66.59ms, 23.4MB)
테스트 4 〉 통과 (78.05ms, 25.4MB)
테스트 5 〉 통과 (78.39ms, 25.3MB)
채점 결과
정확성: 50.0
효율성: 50.0
합계: 100.0 / 100.0
이전 풀이에서는 불필요하게 comp함수를 작성하여 속도가 두배 이상 차이가 났다.