오늘의 첫 번째 시도

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문 하나만 쓰라고 말하는 거 같다.

이에 대해 더 파보고 싶지만 하나만 물고 늘어지는 건 좋다고 판단되지 않아 내일부턴 다른 문제를 풀어보도록 할 것이다.

이 문제는 시간나면 틈틈이 고민해 보는 걸로....

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기