silimy5465   1달 전

일단 통과하기는 했는데 뭔가 찜찜합니다.

딱히 아이디어가 생각이나지 않아서 666을 1씩 증가시키며(1000씩 증가시키는건 6660~6669 구간 때문에 하지 않았습니다.) int를 문자열로 바꿔준 뒤 그 속에 666이 있는지 확인하는 방식으로 코드를 짰는데 int만으로 해결하는 법이 있을까요?

rlarla97   1달 전

네 가능합니다.
선수 자리수를 기준으로 666의 위치에 따라 분기문을 만들어 사용하면 됩니다. N 은 10000 이하의 수이기 때문에 최댓값이 3,000,000을 넘기지 못합니다.
이를 이용하여 x666..xx때 올 수 있는 수의 최대 개수, 666xxx..xx 때 66xx..xx 때 올 수 있는 수 등 이렇게 분기문에 따라 카운팅을 하면 됩니다.

저는 자바로 풀긴 했지만 위와 똑같이 풀었던 것이 있습니다. 아마 이해하는데엔 크게 어렵지 않으니 참고해보셔도 좋을 것 같습니다.

https://st-lab.tistory.com/103

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