๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“— Book/์ž๋ฐ”์˜ ์ •์„

5-1์žฅ ๋ฐฐ์—ด

by hyeon-z 2023. 3. 29.

 

1. ๋ฐฐ์—ด์ด๋ž€?

๐Ÿ’ก ๊ฐ™์€ ํƒ€์ž…์˜ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ

๊ฐ ์ €์žฅ ๊ณต๊ฐ„์ด ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์น˜๋˜์–ด ์žˆ๋‹ค.

 

2. ๋ฐฐ์—ด์˜ ์„ ์–ธ๊ณผ ์ƒ์„ฑ

๋ฐฐ์—ด์˜ ์„ ์–ธ ๋ฐฉ๋ฒ•

 

1. ํƒ€์ž…[ ] ๋ณ€์ˆ˜์ด๋ฆ„; → int [ ] score;

2. ํƒ€์ž… ๋ณ€์ˆ˜์ด๋ฆ„[ ]; → int score [ ];

 

⇒ 1๋ฒˆ์„ ์„ ํ˜ธ! ๋Œ€๊ด„ํ˜ธ๊ฐ€ ๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ์ผ๋ถ€๋ผ๊ธฐ ๋ณด๋‹ค๋Š” ํƒ€์ž…์˜ ์ผ๋ถ€๋ผ๊ณ  ๋ณด๊ธฐ ๋•Œ๋ฌธ.

 

๋ฐฐ์—ด์˜ ์ƒ์„ฑ

 

๐Ÿ’ก ํƒ€์ž…[ ] ๋ณ€์ˆ˜์ด๋ฆ„; → ๋ฐฐ์—ด์„ ์„ ์–ธ(๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ ๋ณ€์ˆ˜ ์„ ์–ธ)

๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[๊ธธ์ด]; → ๋ฐฐ์—ด์„ ์ƒ์„ฑ(์‹ค์ œ ์ €์žฅ ๊ณต๊ฐ„์„ ์ƒ์„ฑ)

 

int[] score;  // intํƒ€์ž…์˜ ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ๋ณ€์ˆ˜ score ์„ ์–ธ
score = new int[5];  // intํƒ€์ž…์˜ 5๊ฐœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด

int[] score = new int[5];  // ๋ฐฐ์—ด์˜ ์„ ์–ธ๊ณผ ์ƒ์„ฑ์„ ๋™์‹œ์— ํ•œ๋‹ค

 

์„ ์–ธ๊ณผ ์ƒ์„ฑ ๊ณผ์ •

 

1. int[] score;

 

2. score = new int [5];

์—ฐ์‚ฐ์ž new์— ์˜ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋นˆ ๊ณต๊ฐ„์— 5๊ฐœ์˜ intํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„ ๋งˆ๋ จ

 

๊ฐ ๋ฐฐ์—ด์š”์†Œ๋Š” ์ž๋™์ ์œผ๋กœ int์˜ ๊ธฐ๋ณธ๊ฐ’(default)์ธ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋จ

 

๋Œ€์ž… ์—ฐ์‚ฐ์ž =์— ์˜ํ•ด ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๊ฐ€ intํ˜• ๋ฐฐ์—ด ์ฐธ์กฐ ๋ณ€์ˆ˜ score์— ์ €์žฅ๋œ๋‹ค.

 

3. ๋ฐฐ์—ด์˜ ๊ธธ์ด์™€ ์ธ๋ฑ์Šค

๐Ÿ’ก ์ธ๋ฑ์Šค: ๋ฐฐ์—ด์˜ ์š”์†Œ๋งˆ๋‹ค ๋ถ™์—ฌ์ง„ ์ผ๋ จ๋ฒˆํ˜ธ ๋ฒ”์œ„: 0 ~ ๋ฐฐ์—ด ๊ธธ์ด-1

 

score[3] = 100; // ๋ฐฐ์—ด score์˜ 4๋ฒˆ์งธ ์š”์†Œ์— 100์„ ์ €์žฅ
int value = score[3]; // ๋ฐฐ์—ด score์˜ 4๋ฒˆ์งธ ์š”์†Œ์— ์ €์žฅ๋œ ๊ฐ’์„ ์ฝ์–ด์„œ value์— ์ €์žฅ

 

1. score [3] = 100;

 

2. int value = score [3];

 

- ๋ณ€์ˆ˜๋‚˜ ์ˆ˜์‹์œผ๋กœ index ์‚ฌ์šฉ ๊ฐ€๋Šฅ

for (int i = 0; i < 5; i++) {
	score[i] = i * 10;
}

 

์ฃผ์˜์‚ฌํ•ญ

index์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฐ’์„ index๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค!!

int[] score = new int[5];  // ๊ธธ์ด๊ฐ€ 5์ธ int๋ฐฐ์—ด. index์˜ ๋ฒ”์œ„๋Š” 0~4
score[5] = 100;  // index์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฐ’์„ index๋กœ ์‚ฌ์šฉ - Error

๋ณ€์ˆ˜์˜ ๊ฐ’์€ ์‹คํ–‰ ์‹œ์— ๋Œ€์ž…๋˜๋ฏ€๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด ๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค.

 

๋ฐฐ์—ด์˜ ๊ธธ์ด

 

๐Ÿ’ก ๋ฐฐ์—ด์˜ ์š”์†Œ์˜ ๊ฐœ์ˆ˜, ์ฆ‰ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์˜ ๊ฐœ์ˆ˜๋‹ค

 

- ๋ฐฐ์—ด์˜ ๊ธธ์ด์˜ ์กฐ๊ฑด

1. ์–‘์˜ ์ •์ˆ˜

2. ์ตœ๋Œ“๊ฐ’: intํƒ€์ž…์˜ ์ตœ๋Œ“๊ฐ’(์•ฝ 20์–ต)

 

- ๊ธธ์ด๊ฐ€ 0์ธ ๋ฐฐ์—ด ์ƒ์„ฑ ๊ฐ€๋Šฅ

 

int score - new int[0];

⇒ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” int๋ฒ”์œ„์˜ ์–‘์˜ ์ •์ˆ˜(0 ํฌํ•จ)์ด์–ด์•ผ ํ•œ๋‹ค.

์ถ”ํ›„ ์ด ๋ฐฐ์—ด์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์„ ๋งŒ๋‚˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

 

๋ฐฐ์—ด์ด๋ฆ„.length

 

ํ•œ๋ฒˆ ์ƒ์„ฑํ•˜๋ฉด ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

⇒ ๋ฐฐ์—ด์ด๋ฆ„.length ๋Š” ์ƒ์ˆ˜

int[] arr = new int[5];
arr.length = 4;  //  ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. - ERROR

 

๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฐฐ์—ด์ด๋ฆ„.length๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๊ณ  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ์ ์–ด์ง„๋‹ค.

int[] arr = new int[5];

for (int i = 0; i < arr.length; i++) {
	System.out.println(arr[i]);
}

⇒ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ์ฝ”๋“œ์˜ ๋ณ€ํ™” X

 

๋ฐฐ์—ด์˜ ๊ธธ์ด ๋ณ€๊ฒฝํ•˜๊ธฐ
1. ๋” ํฐ ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
2. ๊ธฐ์กด ๋ฐฐ์—ด์˜ ๋‚ด์šฉ์„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์ž‘์—…๋“ค์€ ๊ฝค๋‚˜ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์—, ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋„‰๋„‰ํ•˜๊ฒŒ ์žก๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

4. ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐํ™”

๊ฐ€๋Šฅ

int[] score = new int[]{50, 60, 70, 80, 90};  // ๋ฐฐ์—ด์˜ ์ƒ์„ฑ๊ณผ ์ดˆ๊ธฐํ™”๋ฅผ ๋™์‹œ์—
int[] score = {50, 60, 70, 80, 90};

 

๋ถˆ๊ฐ€๋Šฅ

int[] score;
score = {50, 60, 70, 80, 90};

int add(int[] arr) { ... }
int result = add({50, 60, 70, 80, 90});

๋ฐฐ์—ด์˜ ์„ ์–ธ๊ณผ ์ƒ์„ฑ์„ ๋”ฐ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” 'new ํƒ€์ž…[ ]'์„ ์ƒ๋žตํ•  ์ˆ˜ ์—†๋‹ค.

 

๋ฐฐ์—ด์˜ ์ถœ๋ ฅ

 

for๋ฌธ

int[] iArr = { 100, 95, 80, 70, 60 };

for(int i = 0; i < iArr.length; i++) {
	System.out.print(iArr[i] + ","); // ๊ฐ ์š”์†Œ๊ฐ„์˜ ๊ตฌ๋ณ„์„ ์œ„ํ•ด ์‰ผํ‘œ๋ฅผ ๋„ฃ๋Š”๋‹ค.
}
System.out.println(); // ๋‹ค์Œ ์ถœ๋ ฅ์ด ๋ฐ”๋กœ ์ด์–ด์ง€์ง€ ์•Š๋„๋ก ์ค„ ๋ฐ”๊ฟˆ์„ ํ•œ๋‹ค

 

Arrays.toString()

int[] iArr = { 100, 95, 80, 70, 60 };

System.out.println(Arrays.toString(iArr)); // [100, 95, 80, 70, 60]
System.out.println(iArr);  // [I@14318bb -> ํƒ€์ž…@์ฃผ์†Œ (์“ธ๋ชจ์—†๋Š” ์ •๋ณด)

 

์˜ˆ์™ธ ์ƒํ™ฉ - char

char[] chArr = {'a', 'b', 'c', 'd'};
System.out.println(chArr); // abed๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค•

 

5. ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ

for๋ฌธ์„ ํ†ตํ•œ ๋ฐฐ์—ด ๋ณต์‚ฌ

 

int[] arr = new int[5];
int[] tmp = new int[10];  // ๊ธฐ์กด ๋ฐฐ์—ด๋ณด๋‹ค ๊ธธ์ด๊ฒŒ 2๋ฐฐ์ธ ๋ฐฐ์—ด ์ƒ์„ฑ

for(int i = 0; i < arr.length; i++){
	tmp[i] = arr[i];  // arr[i]์˜ ๊ฐ’์„ tmp[i]์— ์ €์žฅ
}

arr = tmp;  // ์ฐธ์กฐ๋ณ€์ˆ˜ arr์ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.

 

๋ฐฐ์—ด์€ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—. ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ๋ฐฐ์—ด์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

์ด๋ ‡๊ฒŒ ์“ธ๋ชจ์—†๊ฒŒ ๋œ ๋ฐฐ์—ด์€ JVM์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์— ์˜ํ•ด์„œ ์ž๋™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐ๋œ๋‹ค.

 

System.arraycopy()๋ฅผ ์ด์šฉํ•œ ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ

 

โœ… for๋ฌธ์„ ํ†ตํ•œ ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ๋ณด๋‹ค ๋” ํšจ์œจ์ ์ด๋‹ค.

 

num [0]์—์„œ newNum [0]์œผ๋กœ num.length๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌ

System.arraycopy(num, 0, newNum, 0, num.length);

 

6. ๋ฐฐ์—ด์˜ ํ™œ์šฉ

1. ์ดํ•ฉ๊ณผ ํ‰๊ท 

2. ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’

3. ์„ž๊ธฐ

4. ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด ์ฑ„์šฐ๊ธฐ

5. ์ •๋ ฌํ•˜๊ธฐ(sort)

6. ๋นˆ๋„์ˆ˜ ๊ตฌํ•˜๊ธฐ

 

์ž์„ธํ•œ ์„ค๋ช…์€ '์ž๋ฐ”์˜ ์ •์„'์„ ์ฐธ๊ณ ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

 

์ดํ•ฉ๊ณผ ํ‰๊ท 

 

๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋”ํ•ด์„œ ์ดํ•ฉ๊ณผ ํ‰๊ท ์„ ๊ตฌํ•œ๋‹ค.

public class SumAverage {
    public static void main(String[] args) {
        int sum = 0;

        int[] score = {10, 20, 30, 40, 50};

        for (int i = 0; i < score.length; i++) {
            sum += score[i];
        }

        float average = sum / (float) score.length;  // ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ float๋กœ ์–ป๊ธฐ ์œ„ํ•ด์„œ ํ˜•๋ณ€ํ™˜

        System.out.println(sum);
        System.out.println(average);
    }
}

 

์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’

 

๋ฐฐ์—ด์˜ ์š”์†Œ ์ค‘์—์„œ ์ œ์ผ ํฐ ๊ฐ’๊ณผ ์ œ์ผ ์ž‘์€ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.

public class MaxMin{
    public static void main(String[] args) {
        int[] score = {20, 50, 40, 10, 30};

        int max = score[0];
        int min = score[0];

        for (int i = 1; i < score.length; i++) {
            if (max < score[i]) max = score[i];
            else if (min > score[i]) min = score[i];
        }

        System.out.println(max);
        System.out.println(min);
    }
}

 

์„ž๊ธฐ (shuffle)

 

๋ฐฐ์—ด์˜ ์š”์†Œ์˜ ์ˆœ์„œ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ๋ฐ”๊พผ๋‹ค. (์นด๋“œ ์„ž๊ธฐ, ๋กœ๋˜ ๋ฒˆํ˜ธ ์ƒ์„ฑ)

 

- ์นด๋“œ ์„ž๊ธฐ

0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆ˜ ๋žœ๋ค ํ•˜๊ฒŒ ์„ž๊ธฐ

public class Shuffle {
    public static void main(String[] args) {
        int[] num = new int[10];

        for (int i = 0; i < num.length; i++) {
            num[i] = i;
        }

        for (int i = 0; i < num.length; i++) {
            int random = (int) (Math.random() * 10);
            int tmp = num[i];
            num[i] = num[random];
            num[random] = tmp;
        }

        for (int n : num) {
            System.out.printf("%d ", n);
        }
    }
}

 

- ๋กœ๋˜ ๋ฒˆํ˜ธ ์ƒ์„ฑ

1๋ถ€ํ„ฐ 45๊นŒ์ง€์˜ ์ˆ˜ ์ค‘ ๋žœ๋ค ํ•œ ์ˆ˜ 6๊ฐœ ๋ฝ‘๊ธฐ

public class Lotto {
    public static void main(String[] args) {
        int[] lotto = new int[45];

        for (int i = 0; i < lotto.length; i++) {
            lotto[i] = i + 1;
        }

        for (int i = 0; i < 6; i++) {
            int num = (int) (Math.random() * 45);
            int tmp = lotto[i];
            lotto[i] = lotto[num];
            lotto[num] = tmp;
        }

        for (int i = 0; i < 6; i++) {
            System.out.printf("%d ", lotto[i]);
        }
    }
}

 

์ž„์˜์˜ ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด ์ฑ„์šฐ๊ธฐ

 

์—ฐ์† ๋˜๋Š” ๋ถˆ์—ฐ์†์ ์ธ ๊ฐ’๋“ค๋กœ ๋ฐฐ์—ด์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค

 

- ์—ฐ์†์ ์ธ ๋ฒ”์œ„์˜ ๊ฐ’

for(int i = 0; i < arr.length; i++) {
	arr[i] = (int)(Math.random() * arr.length);
}

 

- ๋ถˆ์—ฐ์†์ ์ธ ๋ฒ”์œ„์˜ ๊ฐ’

public class Random {
    public static void main(String[] args) {
        int[] num = {10, 12, 16, 20, 30};  // ๋ถˆ์—ฐ์†์ ์ธ ๊ฐ’๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด
        int[] arr = new int[10];

        for (int i = 0; i < arr.length; i++) {
            int random = (int) (Math.random() * num.length);
            arr[i] = num[random];
        }

        System.out.println(Arrays.toString(arr));
    }
}

 

์ •๋ ฌํ•˜๊ธฐ (sort)

 

๋ฒ„๋ธ”์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ

class Sort {
    public static void main(String[] args) {
        int[] numArr = new int[10];

        for (int i = 0; i < numArr.length; i++) {
            System.out.print(numArr[i] = (int) (Math.random() * 10));
        }

        System.out.println();

        for (int i = 0; i < numArr.length - 1; i++) {
            boolean changed = false; // ์ž๋ฆฌ๋ฐ”๊ฟˆ์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€๋ฅผ ์ฒดํฌํ•œ๋‹ค.

            for (int j = 0; j < numArr.length - 1 - i; j++) {
                if (numArr[j] > numArr[j + 1]) { // ์˜†์˜ ๊ฐ’์ด ์ž‘์œผ๋ฉด ์„œ๋กœ ๋ฐ”๊พผ๋‹ค.
                    int temp = numArr[j];
                    numArr[j] = numArr[j + 1];
                    numArr[j + 1] = temp;
                    changed = true; // ์ž๋ฆฌ๋ฐ”๊ฟˆ ๋ฐœ์ƒ
                }
            }

            if (!changed) break; // ์ž๋ฆฌ๋ฐ”๊ฟˆ์ด ์—†์œผ๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค.

            for (int j : numArr) {
                System.out.print(j); // ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
            }

            System.out.println();
        }
    }
}

 

๋นˆ๋„์ˆ˜ ๊ตฌํ•˜๊ธฐ

 

๋ฐฐ์—ด์— ์–ด๋–ค ๊ฐ’์ด ๋ช‡ ๊ฐœ ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ ์„ธ์–ด์„œ ๋ณด์—ฌ์ค€๋‹ค.

class Frequency {
    public static void main(String[] args) {
        int[] numArr = new int[10];
        int[] counter = new int[10];

        for (int i = 0; i < numArr.length; i++) {
            numArr[i] = (int) (Math.random() * 10); // 0ใ€œ9์˜ ์ž„์˜์˜ ์ˆ˜๋ฅผ ๋ฐฐ์—ด์— ์ €์žฅ
            System.out.print(numArr[i]);
        }

        System.out.println();

        for (int j : numArr) {
            counter[j]++;
        }

        for (int i = 0; i < numArr.length; i++) {
            System.out.println(i + "์˜ ๊ฐœ์ˆ˜: " + counter[i]);
        }
    }
}

 

 

Reference

์ž๋ฐ”์˜ ์ •์„ - ๋‚จ๊ถ ์„ฑ

๋Œ“๊ธ€