본문 바로가기
코딩테스트/프로그래머스

해시 > 완주하지 못한 선수

by 의정부핵꿀밤 2021. 8. 20.
728x90


[ 풀이 ] 

첫번쨰 도전. 이중 반복문으로 풀기

그냥 계속 반복해나가면서 같은거 발견하면 하나씩 지우고 하면 되겠지~ 하고 짰는데 입출력 예시 2, 3번이 안됐다..

아직도 왠지는 모르겠어. 찾아보니까 이중반복문쓰면 빅오가 제곱이랬나? 암튼 그래서 시간 초과인거 같기도 하고..?

백준은 시간초과라고 뜨는데 얜 안떠서 모르겠다

 

두번째 도전. unordered_map

결국 못참고 구글링했다,,,따쒸 공부해야지

암튼 찾아봤는데 hash_map이랑 비슷한 라이브러리인 unordered_map 써서 구현한다고 하더라고...

근데 나 둘다 뭔지 모르는거 보고 좀 충격먹어서 c++ 기본 STL먼저 공부하려고,,,

이 방법이 제일 좋은 거 같아서 STL먼저 공부하고 다시 도전해볼거임!

 

세번쨰 도전. sort

가장 간단하고 허술한 방식

그냥 벡터 2개 정렬하고 앞에서부터 비교하면서 다르면 그게 answer!

이게 다들 별로라고 하더라구... 사실 그냥 문제 맞춤 풀이인거 같아서 좀 그렇긴한데..뭐...

근데 이게 처음에는 completion 벡터 사이즈 기준으로 반복문 돌리니까 오류가 나더라

그래서 participant.size()로 돌리니까 통과했따..

이해는 가는데 이렇게 한다고..? 이런 느낌의 코드랄까

 

 

암튼 결론은 뭐다?

이거 공부해서 다시풀어볼거야!!!!!!!!

 


세번쨰 방법으로 푼 풀이,,,

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

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

댓글