망나니 AWOS의 일상
article thumbnail

 

문제 요약 및 풀이

완전제곱수. 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번풀고 광탈해버렸다...

profile

망나니 AWOS의 일상

@AWOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!