차근차근 올라자는 마음에서 브론즈 높은 문제부터 풀이 시작!
import sys
input = sys.stdin.readline
m = int(input())
n = int(input())
num = []
for i in range(1, 101):
if i**2 >= m and i**2 <= n:
num.append(i**2)
if len(num) == 0:
print(-1)
else:
print(sum(num))
print(min(num))
그렇게 어렵지 않은 문제긴 했다. 그런데 처음에 for문 range를 1부터 100까지 줬다가 틀렸어서 ,,, 왜인가 고민을 해보다가, 이런 문제는 대부분 경계값에서 틀리기 때문에 경계값을 고민해봤다. 생각해보니 99까지만 for문을 돌게 되는 것 ㅋ
그래서 101로 고쳐주고 바로 맞았습니다를 받았다!
m = int(input())
n = int(input())
num = []
i = 1
while i ** 2 <= n:
if m <= i ** 2 <= n:
num.append(i ** 2)
i += 1
if num == []:
print(-1)
else:
print(sum(num))
print(num[0])
풀이출처: https://pacific-ocean.tistory.com/161
브론즈 문제 + 브루트포스여서 시간 고려를 안했다.
그래서 내 풀이가 완벽하다고 볼 수 없는 게, 굳이 쓸데없이! 100까지 for문을 돈다는 것이다. 그래서 for문의 최댓값 부분을 n+1 등의 수로 고쳐준다면 훨씬 더 빠른 코드가 될 것 같다.
그래 ... 이렇게 한차례 한차례 올라가는 거야 ... 바로 금에다가 머리 깨지 말라고 ...