Logo
(追記) (追記ここまで)

이분 탐색으로 해결할때 시간 초과 판정을 받습니다

22871번 - 징검다리 건너기 (large)

먼저 질문 봐주셔서 감사드립니다.

이분 탐색으로 풀고싶어서 최대한 코드를 짰는데 첫번째 코드는 시간초과 판정을 받고 두번째는 정답 판정을 받았습니다. 당연히 예제는 정상 출력됩니다.

첫번째 코드는 재귀함수로 코드를 짰다가 리커션 에러가 발생해서 DFS와 유사하게 스택을 이용한 반복문으로 작성했습니다. 첫번째 다리부터 출발해서 마지막 다리까지 도달할 수 있는지를 조건으로 설정했습니다.

두번째 코드는 조건 설정은 동일하지만 모든 다리를 다 검사하면서 첫번째 다리로부터 검사하는 다리까지 도달할 수 있는지 여부를 확인했습니다.

제가 봤을땐 두 방법 모두 시간복잡도가 O(N2log M) 으로 동일한거같은데 두 코드의 결과가 다른 이유가 궁금합니다. 도와주세요 ᅲᅲᅲ

그리고 이분탐색으로 푸는 방법중에 pypy말고 python3 로도 정답판정을 받는 코드가 존재할까요?? 부탁드립니다

생각해보니까 징검다리 방문 처리를 해주지 않아서 이미 방문한 징검다리가 또 스택에 들어가는 바람에 연산 시간이 오래 걸렸습니다.

아래 코드로 하니까 이중반복으로 구현했을때보다 짧은 시간에 해결 가능했습니다.

댓글을 작성하려면 로그인해야 합니다.

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /