본문 바로가기
개발/알고리즘 문제

[Project Euler 36] 10진법과 2진법으로 모두 대칭수인 1,000,000 이하 숫자의 합

by 유다110 2016. 4. 27.
반응형

대칭수(palindrome)인 585는 2진수로 나타내도 10010010012가 되어 여전히 대칭수입니다.

10진법과 2진법으로 모두 대칭수인 1,000,000 이하 숫자의 합을 구하세요.

(주의: 첫번째 자리가 0이면 대칭수가 아님)


이번 거는 긴 버전, 짧은 버전 두 개로 만들어 봤다.

python에 2진수를 구하는 함수 bin()이 있어서 정말 편하게 짰다!


아래는 먼저 짠 수도 코드. 이번엔 완벽히 수도 코드대로 짜서 기분 좋다. 짜고 나서 굉장히 뿌듯했던ㅎㅎ


긴 버전은 함수명만 보고도 어떤 과정을 거치는지 자세히 알 수 있도록 짰다.


짧은 버전은 말그대로 짧게!


아래는 매번 짜고 있는 테스트 함수다.

물론 알고리즘이 간단한 코드로 끝날 때에는 좀 번거롭기도 하지만 함수가 세 개 이상으로 늘어날 때는 유용하다.


반응형

댓글