문제
양의 정수 N의 제곱의 마지막 자릿수가 N 자체와 같은지 판별하라.
입력
테스트 케이스 수와 각 정수 N이 주어진다.
출력
자기복제수이면 "YES", 아니면 "NO"를 출력한다.
예제
| 입력 | 출력 |
|---|---|
1 76 | YES |
풀이
N^2의 끝자리가 N과 같은지 문자열 비교한다.
- N^2을 문자열로 변환한다
- 마지막
len(N)자리를 추출하여 N과 비교한다 - 일치하면 "YES", 아니면 "NO"를 출력한다
핵심 아이디어: 문자열 슬라이싱 [-len(str(num)):]으로 끝자리를 추출하면 간단히 비교할 수 있다.
코드
def fn(num):
if str(num**2)[-len(str(num)):] == str(num):
return "YES"
return "NO"
for i in range(int(input())):
print(fn(int(input())))복잡도
- 시간: O(N)
- 공간: O(N)