본문 바로가기
반응형

개발150

[Project Euler 36] 10진법과 2진법으로 모두 대칭수인 1,000,000 이하 숫자의 합 대칭수(palindrome)인 585는 2진수로 나타내도 10010010012가 되어 여전히 대칭수입니다. 10진법과 2진법으로 모두 대칭수인 1,000,000 이하 숫자의 합을 구하세요. (주의: 첫번째 자리가 0이면 대칭수가 아님) 이번 거는 긴 버전, 짧은 버전 두 개로 만들어 봤다. python에 2진수를 구하는 함수 bin()이 있어서 정말 편하게 짰다! 아래는 먼저 짠 수도 코드. 이번엔 완벽히 수도 코드대로 짜서 기분 좋다. 짜고 나서 굉장히 뿌듯했던ㅎㅎ 긴 버전은 함수명만 보고도 어떤 과정을 거치는지 자세히 알 수 있도록 짰다. 짧은 버전은 말그대로 짧게! 아래는 매번 짜고 있는 테스트 함수다. 물론 알고리즘이 간단한 코드로 끝날 때에는 좀 번거롭기도 하지만 함수가 세 개 이상으로 늘어날 .. 2016. 4. 27.
[Project Euler 35] 백만 이하인 circular prime 개수 구하기 소수 중에서 각 자리의 숫자들을 순환시켜도 여전히 소수인 것을 circular prime이라고 합니다. 예를 들어 197은 971, 719가 모두 소수이므로 여기에 해당합니다.이런 소수는 100 밑으로 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, 97 처럼 13개가 있습니다. 그러면 1,000,000 밑으로는 모두 몇 개나 있을까요? 3.8초 정도가 걸렸다.이번 문제도 꽤나 재밌었다.처음엔 순환이 아니라, 순열로 착각해서 itertools 모듈의 permutations 함수를 썼었다.삽질 잠깐 하다가, deque로 만들어 그 길이만큼 rotate() 시켰다.(deque는 처음 써봤다!) 신기하게도(?) primesieve 모듈에 소수 판별 함수가 없어서, 해당 num을 .. 2016. 4. 23.
[Project Euler 33] 이상한 방법으로 약분할 수 있는 분수 찾기 분수 49/98에는 재미있는 성질이 있습니다. 수학을 잘 모르는 사람이 분모와 분자에서 9를 각각 지워서 간단히 하려고 49/98 = 4/8 처럼 계산해도 올바른 결과가 됩니다. 이에 비해 30/50 = 3/5 같은 경우는 다소 진부한 예라고 볼 수 있습니다. 위와 같은 성질을 가지면서 '진부하지 않은' 분수는, 값이 1보다 작고 분자와 분모가 2자리 정수인 경우 모두 4개가 있습니다. 이 4개의 분수를 곱해서 약분했을 때 분모는 얼마입니까? 이번 문제는 굉장히 재미있게 풀었다. 함수명이나 변수명 짓는 것도 재미있었고ㅋㅋ 원래는 함수를 두 개 정도로 만들려고 했지만..나누니까 더 복잡해져서 그냥 하나로 풀었다. 아래는 먼저 짠 수도코드. 2016. 4. 21.
Flask error logging 모듈 Werkzeug flask를 사용하다 보면 시작부터 에러가 자주 나타나는데, 이럴 때 간결하고 예쁘게 로그를 찍어주는 모듈이 있다. 바로 Werkzeug!! 찾아보니 독일어로 공구라는 뜻인데, 정말 잘 어울린다. 아래는 공식 사이트와 Pypihttp://werkzeug.pocoo.org/ 공식사이트 https://pypi.python.org/pypi/Werkzeug Pypi 굉장히 간단한 코드만으로도 구현이 가능하다. 일단 werkzeug를 import 하고,from werkzeug.debug import DebuggedApplication Flask app을 실행시킬 때, debug = True 로 지정해주면 아래와 같이 깔끔한 에러 로깅을 볼 수 있다. 어느 부분, 어느 라인에서 오류가 났는지 정확히 짚어주기도 한다.. 2016. 4. 20.
반응형