๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

01/19(๊ธˆ) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 20์ผ์ฐจ TIL - this

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 1. 19.

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • 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์„ ๋ฆฌํ„ดํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

 

 

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

์Šคํ”„๋ง ์ž…๋ฌธ์œผ๋กœ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ธฐ ์‹œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ์ดํ•ด๋ฅผ ํ•˜๋‚˜์‹ถ์ง€๋งŒ,

๋ง‰์ƒ ์“ฐ๋ ค๊ณ  ํ•˜๋ฉด ๋˜ ์•ˆ ์จ์ง€๋Š” ์˜ค๋ฌ˜ํ•œ ์ฝ”๋”ฉ์˜ ์„ธ๊ณ„

๋”์šฑ๋” ์—ด์‹ฌํžˆ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.