Stay Hungry Stay Foolish

SWEA

[SWEA] 10570. 제곱 팰린드롬 수 (Python/D3)

dev스카이 2024. 10. 20. 17:30

 


[문제 링크] 👇

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


 

풀이

정수 뒤집는 방법

reversed_num = int(str(num)[::-1])
  • 정수를 str 형으로 변환하고 슬라이싱 한다.
  • 슬라이싱 하는 방법은 [시작:끝:조건] 을 명시하면 된다.
  • 조건에 -1이 들어가면 맨 뒤에서부터 맨 앞 글자까지 거꾸로 문자열을 슬라이싱 한다는 뜻이다.
  • 뒤집은 문자열을 다시 int형으로 변환한다.

 

제곱근 구하는 방법

import math
sqrt_num = math.sqrt(num)
  • math 라이브러리에 sqrt 함수가 존재한다. 이는 제곱근 함수이다.
  • float형으로 반환한다.
  • 굳이 함수를 쓰지 않아도 제곱을 통해 제곱근을 구해도 된다.

 

의미없는 소수점 버리기

sqrt_num = "{:g}".format(sqrt_num)
  • sqrt_num이 11.0이라면 뒤에 0은 의미 없으므로 버려진다.
  • str 형으로 반환한다.

 

 

Solution

import math
test_case = int(input())
for tc in range(1, test_case + 1):
    a, b = map(int, input().split())
    result = 0

    for i in range(a, b + 1):
        reversed_num = int(str(i)[::-1]) #정수 뒤집기
        sqrt_num = math.sqrt(i)  #제곱근, sqrt는 float형으로 반환
        sqrt_num = "{:g}".format(sqrt_num) # <class 'str'>  #소수점 뒤가 0이면 버리기
        reversed_sqrt_num = str(sqrt_num)[::-1] #제곱근 뒤집기
        if i == reversed_num and sqrt_num == reversed_sqrt_num: #팰린드롬 확인
            result += 1

    print("#%d %s" % (tc, result))

 

 

👩‍💻 회고

타입 확인 방법

print(type(sqrt_num))
# 출력 결과 : <class 'str'>

 

형변환 때문에 애를 썼다. 이번 기회에 새로운 방법을 많이 알게 돼서 보람은 있다.