pch1623   3년 전

제 코드중 func 함수안에 1빼는 부분에서 

if (n > 1 && (arr[n - 1] == 0 || arr[n - 1] > cnt + 1)) 이 코드를

if (n > 1) 이렇게 바꾸면 아예 출력이 안되더라구요 왜그런걸까요 ?? 

if (arr[n] > cnt || arr[n] == 0)
arr[n] = cnt;

바로위 쪽에 이 코드에서 예외를 다 잡아주지 못하는 건가요 ? ?

line_jin   3년 전

cnt값이 갱신되지 않을 경우 해당 상태에서 더 진행할 필요가 없기에 return해주어야 합니다.

그렇지 않을 경우 무한 재귀를 돌아버려요

ex) n : 1 -> n : 2 -> n -> 1 .......

pch1623   3년 전

감사합니다 ㅎㅎ

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