반응형
대칭수(palindrome)인 585는 2진수로 나타내도 10010010012가 되어 여전히 대칭수입니다.
10진법과 2진법으로 모두 대칭수인 1,000,000 이하 숫자의 합을 구하세요.
(주의: 첫번째 자리가 0이면 대칭수가 아님)
이번 거는 긴 버전, 짧은 버전 두 개로 만들어 봤다.
python에 2진수를 구하는 함수 bin()이 있어서 정말 편하게 짰다!
아래는 먼저 짠 수도 코드. 이번엔 완벽히 수도 코드대로 짜서 기분 좋다. 짜고 나서 굉장히 뿌듯했던ㅎㅎ
긴 버전은 함수명만 보고도 어떤 과정을 거치는지 자세히 알 수 있도록 짰다.
짧은 버전은 말그대로 짧게!
아래는 매번 짜고 있는 테스트 함수다.
물론 알고리즘이 간단한 코드로 끝날 때에는 좀 번거롭기도 하지만 함수가 세 개 이상으로 늘어날 때는 유용하다.
반응형
'개발 > 알고리즘 문제' 카테고리의 다른 글
[Project Euler 32] 1~9 팬디지털 곱셈식을 만들 수 있는 모든 수의 합 (0) | 2016.05.02 |
---|---|
[Project Euler 37] 왼쪽이나 오른쪽에서 한자리씩 없애가도 여전히 소수인 수의 합은? (0) | 2016.04.29 |
[Project Euler 35] 백만 이하인 circular prime 개수 구하기 (0) | 2016.04.23 |
[Project Euler 33] 이상한 방법으로 약분할 수 있는 분수 찾기 (0) | 2016.04.21 |
[Project Euler 34] 각 자릿수의 팩토리얼을 더했을 때 자기 자신이 되는 수들의 합은? (0) | 2016.04.20 |
댓글