1654번 - 랜선 자르기
코드가 맞는지는 모르겠으나 반례들을 찾아보니 다른건 맞는것같은데 int의 범위를 벗어났을 경우 틀리길래 long long으로 바꾸어주었으나 범위를 벗어나게 입력할경우 프로그램이 멈춰버리네요. 코딩 공부좀 더해야겠습니다... 해결법을 부탁드려도될까요?
int를 사용할 경우 오버플로우가 있을 건 맞으며, 그걸 long long으로 고친 건 잘 하셨습니다.
하지만 위 코드는 지금 정답이 L일 때 루프를 L번 돌면서 매 루프마다 모든 랜선을 순회하며 c의 값을 계산하므로 시간복잡도가 O(NL)입니다. L은 최대 약 10^9, N은 최대 10^6이므로, O(NL)은 시간이 너무 오래 걸립니다.
매개변수 탐색이라는 걸 검색해보세요.
댓글을 작성하려면 로그인해야 합니다.
car584 1년 전
코드가 맞는지는 모르겠으나 반례들을 찾아보니 다른건 맞는것같은데 int의 범위를 벗어났을 경우 틀리길래 long long으로 바꾸어주었으나 범위를 벗어나게 입력할경우 프로그램이 멈춰버리네요. 코딩 공부좀 더해야겠습니다... 해결법을 부탁드려도될까요?