[ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต] ์ฐ์ต๋ฌธ์ - Lv1. ์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ์ค๋ช
์์์ ์์ ์ ์ n์ ๋ํด, n์ด ์ด๋ค ์์ ์ ์ x์ ์ ๊ณฑ์ธ์ง ์๋์ง ํ๋จํ๋ ค ํฉ๋๋ค.
n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด๋ผ๋ฉด x+1์ ์ ๊ณฑ์ ๋ฆฌํดํ๊ณ , n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด ์๋๋ผ๋ฉด -1์ ๋ฆฌํดํ๋ ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
- n์ 1์ด์, 50000000000000 ์ดํ์ธ ์์ ์ ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
n | result |
121 | 144 |
3 | -1 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
121์ ์์ ์ ์ 11์ ์ ๊ณฑ์ด๋ฏ๋ก, (11+1)๋ฅผ ์ ๊ณฑํ 144๋ฅผ ๋ฆฌํดํฉ๋๋ค.
์
์ถ๋ ฅ ์ #2
3์ ์์ ์ ์์ ์ ๊ณฑ์ด ์๋๋ฏ๋ก, -1์ ๋ฆฌํดํฉ๋๋ค.
์ ์ถ
- math ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ pow()ํจ์์ sqrt()ํจ์๋ฅผ ์ฌ์ฉํ๋ค
math.pow(n, 2) : n์ 2 ์ ๊ณฑํ ๊ฒฐ๊ณผ ๋ฐํ
math.sqrt(n) : n์ ์ ๊ณฑ๊ทผ ๊ฒฐ๊ณผ ๋ฐํ
- n์ ์ ๊ณฑ๊ทผ์ธ x๊ฐ ์์ ์ ์์ด๋ฉด ์ ๋ต ๊ตฌํด์ฃผ๊ณ ์๋๋ฉด -1 ๋ฆฌํด
import math
def solution(n):
answer = 0
x = math.sqrt(n)
if x == int(x):
answer = math.pow(x + 1, 2)
else:
answer = -1
return answer
๋ค๋ฅธ์ฌ๋์ ํ์ด
- math ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ** (1 / 2)๋ฅผ ํ์ฌ ์ ๊ณฑ๊ทผ์ ๊ตฌํด์ฃผ์๋ค
- if sqrt % 1 == 0 --> ์์ ์ ์์ผ ๊ฒฝ์ฐ
def nextSqure(n):
sqrt = n ** (1/2)
if sqrt % 1 == 0:
return (sqrt + 1) ** 2
return -1