[BOJ] 1484 다이어트
Post
취소

[BOJ] 1484 다이어트

문제 요약 및 풀이

1484번: 다이어트

일단, 나이브하게 풀었다. ㅋㅋㅋ

풀이 코드

몇가지 간단한 생각을 하고, 나이브하게 다 긁었다.

  1. 특정 수가 제곱인지 확인하는 건, sqrt 씌우고 다시 곱해보면 된다.
  2. 어떤 수 i가 순서대로 증가할 때, \(i*i - (i-1)*(i-1) > g\) 되는 순간, 더이상 i 를 늘리면서 확인할 필요없다.
  3. [중요] 꼭 아무것도 출력 안 한 경우 -1 출력하기.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from math import sqrt

g = int(input())
cnt = 0

for i in range(1, 11000000):
  if i*i - (i-1)*(i-1) > g:
    break
  k = i*i + g
  q = int(sqrt(k))
  if k == q*q:
    print(q)
    cnt += 1

if cnt == 0:
  print(-1)

This post is licensed under CC BY 4.0 by the author.