완주하지 못한 선수(2)

고장난·2021년 7월 28일
0

다시풀기

목록 보기
3/3

이전풀이

#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함수를 작성하여 속도가 두배 이상 차이가 났다.
profile
훈련중

0개의 댓글