[백준] 1977 python 완전제곱수 3가지 방법
2023. 1. 25. 03:51ㆍ카테고리 없음
728x90
1. 반복문 for 사용
m=int(input())
n=int(input())
sum = 0
for i in range(1, int(n**0.5)+1):
if i**2 >= m and i**2 <= n:
sum += i**2
if sum == 0:
print(-1)
else:
print(sum)
print(min(i**2 for i in range(1, int(n**0.5)+1) if i**2 >= m and i**2 <= n))
2. List comprehension을 이용하는 방법
m = int(input())
n = int(input())
perfect_squares = [i**2 for i in range(1, int(n**0.5)+1) if i**2 >= m and i**2 <= n]
if not perfect_squares:
print(-1)
else:
print(sum(perfect_squares))
print(min(perfect_squares))
3. filter 사용
m = int(input())
n = int(input())
perfect_squares = list(filter(lambda x: x >= m and x <= n, (i**2 for i in range(1, int(n**0.5)+1))))
if not perfect_squares:
print(-1)
else:
print(sum(perfect_squares))
print(min(perfect_squares))
https://www.acmicpc.net/problem/1977
1977번: 완전제곱수
M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완
www.acmicpc.net
728x90