2842번 - 집배원 한상덕
기존에는 P,K에 있는 높이를 입력받을때 모두조사하야서 가장 큰값과 작은값을 구해두고 left right를 구해두고 이중포문으로
범위를 구해나가는 방식을 선택했습니다.
그런데 시간초과가나서 원초적으로 left = 0 right =0 부터 시작해서 갈수없으면 right를 증가시키고 갈수있으면 left를 줄여서 범위를 줄여나가는 방식은 통과했습니다..
이중포문이 더느린 이유가 있을까요 ??
기존은 O(N^2) 이고 수정한 코드는 투 포인터 알고리즘으로 O(N)입니다.
매 루프를 돌때 left와 right둘중 하나가 1씩 늘어나는데 left가 N번 증가하면 루프는 무조건 끝이나고
right가 N번 증가해도 루프는 무조건 끝납니다. 따라서 합쳐서 O(N)입니다.
그렇군요 생각해보니 그렇네요 감사합니다!
댓글을 작성하려면 로그인해야 합니다.
redbin0471 4년 전 1
기존에는 P,K에 있는 높이를 입력받을때 모두조사하야서 가장 큰값과 작은값을 구해두고 left right를 구해두고 이중포문으로
범위를 구해나가는 방식을 선택했습니다.
그런데 시간초과가나서 원초적으로 left = 0 right =0 부터 시작해서 갈수없으면 right를 증가시키고 갈수있으면 left를 줄여서 범위를 줄여나가는 방식은 통과했습니다..
이중포문이 더느린 이유가 있을까요 ??