wkddudtjs20   4년 전

일단 3과 2의 제곱수일때가 가장 빠르게 나눠질거라 생각하여 메서드를 작성해두었습니다.

제곱수라면 count를 리턴하고, 제곱수가 아니면 -1을 리턴합니다.

3의 제곱수일 때가 가장 빨리 나눠질 것이고, 

1 뺀 수가 만약 3의 제곱수라면 그 다음으로 빠를것이라 생각하였습니다.

그리고 2의 제곱수일 때가 다음으로 빨리 나눠지고

1 뺀 수가 2의 제곱수라면 다음으로 빨ㄹ ㅣ나눠진다고 생각하였습니다.

나머지는 3으로 먼저 나누고, 안되면 2로 먼저 나누고, 안되면 1을 빼도록 하였습니다.

1~30까지 넣어본 결과 제대로 잘 나오구요,

4096을 넣었다가 제대로 안나오길래 고친 코드가 현재 코드입니다. 그래서 현재 4096, 4097 모두 잘 나옵니다.


어디가 문제인걸까요 ㅠㅠㅠㅠ 머리 터집니다 ㅠㅠ

반례 하나 찾아주시면 또 붙들고 이래저래 고쳐보겠습니다 ㅠㅠ

djm03178   4년 전

이 문제에서 '아마도 그럴 것이다'라는 추측은 대단히 위험한 가정입니다. 증명하지 못한다면 하지 않는 것이 좋습니다.

이 문제를 푸는 정석은 무엇이 더 좋을지를 생각하지 않고 모든 가능성을 열어두는 것입니다.

wkddudtjs20   4년 전

감사합니다. 곰곰이 생각해보니 그렇네요.

가정 없이 코드 새로짰습니다! 

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