Algorithm Problem Solving/Programmers

[프로그래머스] 코딩테스트 연습 해시 완주하지 못한 선수

코코자장자장 2021. 11. 27. 17:29

안녕하세요! 오늘은 프로그래머스 완주하지 못한 선수를 풀어 보았는데요!

 

이게 효율성 테스트도 있어서 상당히 오래걸릴뻔했는데 algorithm 사용해서 풀었습니다.

 

사실 string sort 구현할까 고민을 깊이 하다가 말았거든요 ㅎㅎ

 

구현하는 방법을 서술하자면 우선 오버레이터 재정의해서 string 비교하는 방법을 만들려했습니다.

 

비교방법은 c_str로 char * 로 변환후 앞글자부터 크기비교하는 방식으로 진행할려했습니다.

 

귀찮음에ㅠㅠ

 

sort도 나중에 알고리즘 따로 올리도록하겠습니다!

 

이 문제에서 버블소트 머지소트 힙소트 퀵소트 등등 다해보고 싶었으나 귀찮음이 ㅎㅎㅎ...

 

죄송합니다! 대신 다음에는 소트 알고리즘 정리해서 올려보도록 하겠습니다!

 


 

간단하게 풀린 코드 보시죠!

 

우선 소트후 for문을 돌리면서 다른것이 있다면 그 사람이 범인! 이라 생각후 풀었습니다!

 

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

using namespace std;

string solution(vector<string> participant, vector<string> completion) {
    string answer = "";
    int size = completion.size();
    int result;
    sort(participant.begin(), participant.end());
    sort(completion.begin(), completion.end());
    for(int i = 0; i < size; i++) {
        if(participant[i] != completion[i]){
            result = i;
            break;
        }
    }
    return participant[result];
}