문제
각 테스트 케이스에 대해서 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트하라.
풀이
입력받은 수와 뒤집은 수의 합을 구하는 함수 sum_num_and_reverse()를 작성한다.
이 때 str로 입력받아야 뒤집기 쉬우므로 num의 type은 str이어야 한다.
num[::-1]로 reverse한 후, 원래 수와 이 수를 int형으로 바꿔 더한 후 다시 str형으로 바꿔 return하는 함수이다.
이후 좌우대칭인지 판단하는 is_palindrome() 함수를 작성한다.
좌우대칭이기 위해서는 원래 수와 뒤집은 수가 완전히 일치하면 된다.
이제 두 수의 합이 좌우대칭인지 판단하는 symmetry() 함수를 자것ㅇ한다.
sum_num_and_reverse() 함수를 불러와 합을 tot에 저장한다. 이때 type은 str이다.
is_palindrome 함수를 불러와 tot을 넣었을 때 True이면 'YES', 아니면 'NO'를 return한다.
위는 각 테스트케이스에서 사용할 함수들을 정의한 것이다.
이제부터는 값을 입력받아 함수에 넣은 후 결과를 출력하게 된다.
str형으로 입력을 받고 이 값을 symmetry() 함수에 넣는다.
symmerty 함수에서 맨 위의 두 함수를 사용하게 되고, 결국 합의 좌우대칭에 대한 결과가 print된다.
코드
def sum_num_and_reverse(num):
num_reverse = num[::-1]
total = str(int(num) + int(num_reverse))
return total
def is_palindrome(s):
return s == s[::-1]
def symmetry(num):
tot=sum_num_and_reverse(num)
return "YES" if is_palindrome(tot) else "NO"
t=int(input())
for _ in range(t):
num=input()
print(symmetry(num))
'BOJ > Python' 카테고리의 다른 글
[BOJ/백준] 33689 - CPDU (Python) (0) | 2025.06.03 |
---|---|
[BOJ/백준] 1837 - 암호제작 (Python) (0) | 2025.05.29 |
[BOJ/백준] 14568 - 2017 연세대학교 프로그래밍 경시대회 (Python) (1) | 2025.05.24 |
[BOJ/백준] 6131 - 완전 제곱수 (Python) (0) | 2025.05.23 |
[BOJ/백준] 9550 - 아이들은 사탕을 좋아해 (Python) (0) | 2025.05.21 |