[python] 백준 1977번 완전제곱수알고리즘/백준2021. 9. 9. 23:34
Table of Contents
문제 요약 및 풀이
완전제곱수. 64의 제곱근 8, 8을 제곱하게 되면 다시 64가 된다.
내가 생각한 풀이다.
제곱근을 구하고 정수형으로 타입 변환을 해준후에 다시 제곱하면 완전제곱수가 될 것이라고 생각했다.
M | N | i = M | int(i**0.5) | T = int(i**0.5)**2 | i == T | sqrt_list |
60 | 100 | 60 | 7 | 49 | False | |
61 | 7 | 49 | False | |||
62 | 7 | 49 | False | |||
63 | 7 | 49 | False | |||
64 | 8 | 64 | True | 64 | ||
.... | ... | ... | .... | .... | ||
100 | 10 | 100 | True | 64, 81, 100 |
표와 같이 결과가 나온다.
나머지는 M이상 N이하의 자연수 중에 완전제곱수가 없을 때에는 -1을 출력,
아니면 첫째줄에 합과 둘째 줄에 최솟값을 출력해주면 된다.
완성된 코드!! 👌😊👍
M = int(input())
N = int(input())
sqrt_list = []
for i in range(M, N+1):
T = int(i ** 0.5) ** 2
if i == T:
sqrt_list.append(i)
if sqrt_list:
print(sum(sqrt_list))
print(min(sqrt_list))
else:
print(-1)
여담) 프로그래머스 월간 코드 시즌3 가 있던 날이다. 그래서 조금 포스팅이 늦어졌다.
1번은 너무 쉬웠고 2번, 3번, 4번 갭 차이가 너무 심한 것 같다. 1번풀고 광탈해버렸다...
'알고리즘 > 백준' 카테고리의 다른 글
[python] 백준 1668번 트로피 진열 (0) | 2021.09.15 |
---|---|
[python] 백준 1075번 나누기 (0) | 2021.09.13 |
[python] 백준 1453번 피시방 알바 (2) | 2021.09.07 |
[python] 백준 1357번 뒤집힌 덧셈 (2) | 2021.09.06 |
[python] 백준 20362번 유니대전 퀴즈쇼 (0) | 2021.09.05 |
@펄찌 :: Pearl's Story
펄의 일상이 궁금한 사람 요기~
즐거운 하루 되셨으면 좋겠습니다😊