11052번 - 카드 구매하기
16번째 줄의 if문이 이해가 되지 않네요..
15번째 줄에서 for문을 1부터 N까지 돌고 있습니다.
30번째 줄에서 입력이 올바른지 검사하지 않으셔도 됩니다.
4
1 5 6 7
N이 4라고 가정하면 처음에 num이 4가 되고 i가 1일때 num이 1로 계속 나누어 떨어지기 때문에 0까지 찍고 return 0 된 후 0+arr[1]로 result가 1되죠
이때 num이 1이기 때문에 for문이 끝나고 return 1 됩니다. 그 다음 num이 2가 되고 i가 1일때 1 + arr[1]은 2이고 i가 2일때 0 + arr[2] 즉 5가되고 다시 for문이 끝납니다. if문으로 걸러지는 구조입니다.
헐... if문 지우고 범위 바꾸니까 돌아갑니다!
16번째 줄의 if문은 올바르지 않습니다.
N = 5이고, 해집합이 {2, 3}으로 모두 N의 약수가 아닐 경우, 본 소스코드는 올바르지 못한 결과를 출력합니다.
다음은 반례 데이터입니다.
친절한 답변 감사합니다!!!^^
댓글을 작성하려면 로그인해야 합니다.
ohbg123 6년 전