๋ฌธ์ ์ค๋ช
์์์ ์์ ์ ์ n์ ๋ํด, n์ด ์ด๋ค ์์ ์ ์ x์ ์ ๊ณฑ์ธ์ง ์๋์ง ํ๋จํ๋ ค ํฉ๋๋ค.
n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด๋ผ๋ฉด x+1์ ์ ๊ณฑ์ ๋ฆฌํดํ๊ณ , n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด ์๋๋ผ๋ฉด -1์ ๋ฆฌํดํ๋ ํจ์๋ฅผ ์์ฑํ์ธ์.
https://school.programmers.co.kr/learn/courses/30/lessons/12934
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
์ ํ ์ฌํญ
- n์ 1 ์ด์, 50,000,000,000,000 ์ดํ์ธ ์์ ์ ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
n | return |
121 | 144 |
3 | -1 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์#1
- 121์ ์์ ์ ์ 11์ ์ ๊ณฑ์ด๋ฏ๋ก, (11 + 1)๋ฅผ ์ ๊ณฑํ 144๋ฅผ ๋ฆฌํดํฉ๋๋ค.
์ ์ถ๋ ฅ ์#2
- 3์ ์์ ์ ์์ ์ ๊ณฑ์ด ์๋๋ฏ๋ก, -1์ ๋ฆฌํดํฉ๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
class Solution {
public long solution(long n) {
long answer = 0;
double x = Math.sqrt(n);
if (x == (int) x) {
answer = ((long) x + 1) * ((long) x + 1);
} else {
answer = -1;
}
return answer;
}
}
์ฝ๋ ์ค๋ช
์กฐ๊ฑด๋ฌธ์ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.
double x = Math.sqrt(n);
๋ณ์ x๋ฅผ double ํ์
์ผ๋ก ๋ถ๋ฌ์ค๊ณ Math.sqrt()๋ฅผ ํตํด n์ ์ ๊ณฑ๊ทผ์ ๊ตฌํด์ x์ ์ ์ฅํ๋ค.
if (x == (int) x) { }
์กฐ๊ฑด๋ฌธ์ ์ด์ฉํด์ ์ ์ฅํ x์ ๊ฐ์ด ์ ์์ผ ๊ฒฝ์ฐ์๋ง ์คํ๋๋๋ก ํ๋ค.
answer = ((long) x + 1) * ((long) x + 1)
๋ณ์ answer์ (x+1)์ ์ ๊ณฑ ๊ฐ์ ์ ์ฅํ๋๋ฐ answer๊ฐ long ํ์
์ด๊ธฐ ๋๋ฌธ์ ๊ณ์ฐํ ๋๋ (long)์ ์์ ๋ถ์ฌ long ํ์
์ผ๋ก ํ๋ณํ ํ ๊ณ์ฐํ๋ค.
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ๐ต ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ค๋ ์ (0) | 2024.11.08 |
---|---|
์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2024.11.07 |
๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ (4) | 2024.11.03 |
์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ (0) | 2024.11.03 |
x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์ (0) | 2024.11.03 |