파이썬 대칭인 수를 찾으려고 하는데

조회수 1008회
list1 = []

for i in range(1,1001):
    str1 = str(i)
    for j in range(0,len(str1)):
        if str1[j] == str1[-1-j]:
            list1.append(i)


print(list1)

12321 처럼 중간을 기준으로 앞뒤가 똑같은 숫자를 찾으려고 하는데 저렇게 짜니까 앞에 하나랑 뒤에 하나만 일치해도 list1에 넣어지는데 모두 일치해야 리스트에 추가되게 어떻게 만들까요?

1 답변

  • 예컨대 7자리 수라고 하면 다음이 모두 참인지 검증하면 됩니다. 하나라도 틀리면 그건 회문수가 아닙니다.

    • str(i)[0] == str(i)[6]
    • str(i)[1] == str(i)[5]
    • str(i)[2] == str(i)[4]
    • str(i)[3] == str(i)[3] <-- 앗 이건 당연히 참이겠군요.

    그러므로:

    • 7자리 수가 주어지면 총 4번 검증해야 한다 (왜 하필 round(3.5)번?)
    • 각 검증은 주어진 수의 특정 자릿수 숫자들을 규칙적으로 비교할 수 있어야 한다 (어떻게?)

    의 요건들만 지키면 원하시는 것은 구현될 겁니다. 시도해 보세요!

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)