[문제 링크] 👇
풀이
정수 뒤집는 방법
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'>
형변환 때문에 애를 썼다. 이번 기회에 새로운 방법을 많이 알게 돼서 보람은 있다.
'SWEA' 카테고리의 다른 글
[SWEA] 13229. 일요일 (Python/D3) (0) | 2024.10.21 |
---|---|
[SWEA] 1289. 원재의 메모리 복구하기 (Python/D3) (0) | 2024.10.20 |
[SWEA] 11688. Calkin-Wilf tree 1 (Python/D3) (1) | 2024.10.20 |
[SWEA] 4406. 모음이 보이지 않는 사람 (Python/D3) (0) | 2024.10.20 |
[SWEA] 12221. 구구단2 (Python/D3) (0) | 2024.10.20 |