Blog Full Notice
back to main page

1 분 소요

motivation: 네이버 블로그

#프로젝트 오일러 문제 4: 세자리 수를 곱해 만들 수 있는 가장 큰 대칭수는? : 네이버 블로그

프로젝트 오일러 문제 4: 세자리 수를 곱해 만들 수 있는 가장 큰 대칭수는?

프로파일 무지성 2021. 7. 17. 2:32
URL 복사 이웃추가
#problem4.py '''앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다. 두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다. 세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까?''' #num1=a2*100+a1*10+a0 #num2=b2*100+b1*10+b0 list=[] for a0 in range(1,10): for a1 in range(1,10): for a2 in range(1,10): for b0 in range(1,10): for b1 in range(1,10): for b2 in range(1,10): tenpowerof0_before=a0*b0 tenpowerof0=tenpowerof0_before%10 tenpowerof1_before=(tenpowerof0_before//10+a0*b1%10+a1*b0%10) tenpowerof1=tenpowerof1_before%10 tenpowerof2_before=tenpowerof1_before//10+a0*b2%10+a0*b1//10+a1*b0//10+a1*b1%10+a2*b0%10 tenpowerof2=tenpowerof2_before%10 tenpowerof3_before=tenpowerof2_before//10+a0*b2//10+a1*b1//10+a2*b0//10+a1*b2%10+a2*b1%10 tenpowerof3=tenpowerof3_before%10 tenpowerof4_before=tenpowerof3_before//10+a1*b2//10+a2*b1//10+a2*b2%10 tenpowerof4=tenpowerof4_before%10 tenpowerof5_before=tenpowerof4_before//10+a2*b2//10 tenpowerof5=tenpowerof5_before%10 if tenpowerof5==tenpowerof0 and tenpowerof1==tenpowerof4 and tenpowerof2==tenpowerof3: list.append((100*a2+10*a1+a0)*(100*b2+10*b1+b0)) list.sort() print(list[-1])

정답: 906609

이번 문제는 1시간 50분이나 걸렸습니다..

뭔가 하면서도 이 풀이 접근법은 아니다....라는 생각이 강하게 들었지만

너무 기회비용이 커서 그냥 끝을 봤습니다.

근데 이제 다 풀고 나서 다른 사람들의 풀이를 봤는데

어떤 분의 풀이는 단 6줄이더라구요..

^^

그만큼 대단하신 거지!

같은 사람일까요?ㅋㅋㅋㅋ

이런 방법이 있었네요..

이제부터 문제를 어떻게 접근할지에 대해서 더 많은 시간을 쏟겠습니다.

사실상 문제를 해결하는 접근 방식이 정해지면 누구나 코딩할 수 있다는 것을 알게 된 것 같습니다.

즉 결국 차이를 만들어내는 것은 접근 방식이었네요.

앞으로 인내심을 갖고 적어도 10분은 코딩을 안하고 '다른 접근법은 없을까?'를 고민해야겠습니다.

제 성격의 단점이 인내심이 없다는 것인데 여기서도 드러나네요.

내일 한번 다른 풀이를 저만의 방식으로 구현해보겠습니다.

화이팅!!

댓글남기기