๐ ์ค๋์ ํ์ต ํค์๋
- this
๐ฅ this ๋
Java์์ this๋ ์ธ์คํด์ค ์๊ธฐ ์์ ์ ๊ฐ๋ฆฌํค๋ ํค์๋์ ๋๋ค.
this๋ฅผ ํตํด ํด๋์ค ๋ฉ์๋ ๋ฐ ์์ฑ์์์ ์๊ธฐ ์์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์กฐ์ํ ์ ์์ต๋๋ค.
this๋ ํด๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๋ผ๋ ๊ฒ์ ๋๋ค
โ๏ธ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ์ ์ธ์คํด์ค ์์ฒด๋ ๋ค๋ฆ
๐ฅ this ํน์ง
๊ฐ์ฒด ์์ ์ ์ฐธ์กฐ๊ฐ์ ๊ฐ์ง๋ค.
๋ฉ์๋ ๋ด์์๋ง ์ฌ์ฉ๋๋ค.
๊ฐ์ฒด ์์ ์ ๋ฉ์๋์ ์ ๋ฌ, ๋ฆฌํดํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
๋งค๊ฐ ๋ณ์์ ๊ฐ์ฒด ์์ ์ด ๊ฐ์ง๊ณ ์๋ ๋ณ์์ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ, ์ด๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์์ ์ ๋ณ์์ this๋ฅผ ์ฌ์ฉํ๋ค.
public class Test {
private int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num; // ์ฌ๊ธฐ ์๋ num์ ๋งค๊ฐ ๋ณ์๋ก ๋ค์ด์จ num
//this.num ์ Test์ ์๋ num
}
}
๐ฅ ์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ
โ๏ธ๋ฌธ์ ์ค๋ช
์์์ ์์ ์ ์ n์ ๋ํด, n์ด ์ด๋ค ์์ ์ ์ x์ ์ ๊ณฑ์ธ์ง ์๋์ง ํ๋จํ๋ ค ํฉ๋๋ค.
n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด๋ผ๋ฉด x+1์ ์ ๊ณฑ์ ๋ฆฌํดํ๊ณ ,
n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด ์๋๋ผ๋ฉด -1์ ๋ฆฌํดํ๋ ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ์ถ๋ ฅ ์)
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 sqrt = Math.sqrt(n);
if (sqrt % 1 == 0) {
answer = (long) Math.pow(sqrt + 1, 2);
} else {
answer = -1;
}
return answer;
}
}
doubleํ์ ์ ์ธ์๋ฅผ ์ ๋ฌํ๋ฉด ์ธ์์ ๋ํ doubleํ์ ์ ์ ๊ณฑ๊ทผ ๊ฐ์ ๋ฆฌํดํด์ฃผ๋ Math.sqrt๋ฅผ ์ฌ์ฉํ์ฌ,
n์ ์ ๊ณฑ๊ทผ์ ๊ตฌํ๋ sqrt๋ฅผ ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ if ๋ฌธ์ ์ฌ์ฉํ์ฌ sqrt ๊ฐ ์ ์์ธ์ง ๊ตฌํ๊ธฐ ์ํด (sqrt % 1 == 0)์ ํด์ฃผ์๊ณ ,
์ ์๋ผ๋ฉด, Math.pow(sqrt + 1, 2)๋ฅผ ํ์ฌ sqrt์ 1์ ๋ํ ์ ๊ณฑ์ ๊ตฌํ๋ ์์ ์์ฑํ์๊ณ ,
์๋๋ผ๋ฉด, -1์ ๋ฆฌํดํ๋๋ก ํ์์ต๋๋ค.
๐ ์ค๋์ ํ๊ณ
์คํ๋ง ์ ๋ฌธ์ผ๋ก ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ฐ์๋ฅผ ๋ฃ๊ธฐ ์์ํ์์ต๋๋ค.
๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ์ดํด๋ฅผ ํ๋์ถ์ง๋ง,
๋ง์ ์ฐ๋ ค๊ณ ํ๋ฉด ๋ ์ ์จ์ง๋ ์ค๋ฌํ ์ฝ๋ฉ์ ์ธ๊ณ
๋์ฑ๋ ์ด์ฌํ ํด๋ณด๊ฒ ์ต๋๋ค.
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
01/23(ํ) ๋ด์ผ๋ฐฐ์์บ ํ Java 22์ผ์ฐจ TIL - List (1) | 2024.01.23 |
---|---|
01/22(์) ๋ด์ผ๋ฐฐ์์บ ํ Java 21์ผ์ฐจ TIL - Path Variable, Request Param (0) | 2024.01.22 |
01/18(๋ชฉ) ๋ด์ผ๋ฐฐ์์บ ํ Java 19์ผ์ฐจ TIL - MVC (0) | 2024.01.18 |
01/17(์) ๋ด์ผ๋ฐฐ์์บ ํ Java 18์ผ์ฐจ TIL - ์ฐ๋ ๋ (0) | 2024.01.17 |
01/16(ํ) ๋ด์ผ๋ฐฐ์์บ ํ Java 17์ผ์ฐจ TIL - ๋๋ค(Lambda) (0) | 2024.01.16 |