T = int(input())
for tc in range(1,1+T):
a,b = map(int,input().split())
# 제곱 팰린드롬 수의 갯수
cnt = 0
# 시작
start = int(a**(1/2))
# 끝
end = int(b**(1/2))
# 1,4,9 같은 경우 제외하기 위한 조건
if start != a**(1/2):
for q in range(start+1,end+1):
if str(q**2)[0] == str(q**2)[-1] and str(q)[0] == str(q)[-1]:
cnt += 1
else:
for q in range(start,end+1):
if str(q**2)[0] == str(q**2)[-1] and str(q)[0] == str(q)[-1]:
cnt += 1
print('#{} {}'.format(tc,cnt))
그 외
문제 해결에 대한 아이디어
1. 연산 횟수를 줄이기 위해 a와 b값 1/2를 제곱함
2. b의 최대 값은 1000이다 == 1000을 제외하면 b는 최대 3자리의 자연수이다
== 처음 숫자와 마지막 숫자만을 비교하면 된다
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 홀수일까 짝수일까 - PYTHON #5549 (0) | 2021.01.08 |
---|---|
[SWEA 코딩] 삼성시의 버스 노선 - PYTHON #6485 (2) | 2021.01.07 |
[SWEA 코딩] 전봇대 - PYTHON #10580 (0) | 2021.01.07 |
[SWEA 코딩] 소득 불균형 - PYTHON #10505 (0) | 2021.01.07 |
[SWEA 코딩] 이진수 표현 - PYTHON #10726 (0) | 2021.01.07 |