오늘의 첫 번째 시도
string solution(vector participant, vector completion) {
int i = 0;
int j = 0;
for (i = 0; i < participant.size() - 1; i++)
{
for (j = 0; j < completion.size(); j++)
{
if (participant[i] != completion[j]) continue;
break;
}
if (j == completion.size())
{
if (participant[i] != completion[j - 1])
{
break;
}
}
completion.erase(completion.begin() + j);
}
string answer = participant[i];
return answer;
}
어제의 문제점을 깨닫고 수정했다.
participant변수는 삭제되지 않는데 어제까지만 해도 string answer = participant[0]; 이라고 고정을 해 뒀다.
그러니 계속 같은 값이 나왔다.
오늘은 그것을 확인하고 [0] 대신 [i]를 넣었다.
정확성은 만점.
물론 효율성에서 모두 시간초과가 나왔다.
전 방법은 모든 participant와 모든 completion이 비교를 했지만 이번엔 participant를 기준으로 completion을 지워가며 participant가 completion에 존재하지않다면 바로 for문을 나와 답을 제시하는 방식이다.
근데 이것도 시간초과하고 하면 정말로 for문 하나만 쓰라고 말하는 거 같다.
이에 대해 더 파보고 싶지만 하나만 물고 늘어지는 건 좋다고 판단되지 않아 내일부턴 다른 문제를 풀어보도록 할 것이다.
이 문제는 시간나면 틈틈이 고민해 보는 걸로....
'알고리즘' 카테고리의 다른 글
20200427 프로그래머스 level 2 - 멀쩡한 사각형 (0) | 2020.04.27 |
---|---|
20200426 프로그래머스 level 2 - 멀쩡한 사각형 (0) | 2020.04.26 |
20200425 프로그래머스 level 2 - 멀쩡한 사각형 (0) | 2020.04.25 |
20200424 프로그래머스 level 2 - 주식가격 (0) | 2020.04.24 |
20200422 프로그래머스 level 1 - 완주하지 못한 선수 (0) | 2020.04.22 |
최근댓글