redbin0471   4년 전

기존에는 P,K에 있는 높이를 입력받을때 모두조사하야서 가장 큰값과 작은값을 구해두고 left right를 구해두고 이중포문으로 

범위를 구해나가는 방식을 선택했습니다. 

그런데 시간초과가나서 원초적으로 left = 0 right =0 부터 시작해서 갈수없으면 right를 증가시키고 갈수있으면 left를 줄여서 범위를 줄여나가는 방식은 통과했습니다..

이중포문이 더느린 이유가 있을까요 ??

chw0501   4년 전

기존은 O(N^2) 이고 수정한 코드는 투 포인터 알고리즘으로 O(N)입니다.

매 루프를 돌때 left와 right둘중 하나가 1씩 늘어나는데 left가 N번 증가하면 루프는 무조건 끝이나고

right가 N번 증가해도 루프는 무조건 끝납니다. 따라서 합쳐서 O(N)입니다.

redbin0471   4년 전

그렇군요 생각해보니 그렇네요 감사합니다!

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