๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ์ ํŠธ/๊ฐœ์ธ ํ”„๋กœ์ ํŠธ

๊ณ„์‚ฐ๊ธฐ ๊ณผ์ œ_ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

by carrot0911 2024. 11. 20.

Lv1 ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

  • ๋ฌธ์ œ ์ƒํ™ฉ
    • Scanner๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋˜ ์ค‘, nextInt( ) ๋’ค์— nextLine( )์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด ์˜๋„์น˜ ์•Š๊ฒŒ ๋นˆ ์ž…๋ ฅ์ด ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
    • nextInt( )๊ฐ€ ์ˆซ์ž ์ž…๋ ฅ ๋’ค ๋‚จ์•„ ์žˆ๋Š” ์ค„ ๋ฐ”๊ฟˆ ๋ฌธ์ž(\n)๋ฅผ ์†Œ๋น„ํ•˜์ง€ ์•Š์•„์„œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ์˜€๋‹ค.
  • ๋ฌธ์ œ ์›์ธ
    • nextInt( )๋Š” ์ˆซ์ž๋งŒ ์ฝ๊ณ , ์ค„ ๋ฐ”๊ฟˆ ๋ฌธ์ž(\n)๋Š” ์ž…๋ ฅ ๋ฒ„ํผ์— ๋‚จ๊ฒจ๋‘”๋‹ค.
    • ์ดํ›„ nextLine( )์ด ํ˜ธ์ถœ๋˜๋ฉด ์ž…๋ ฅ ๋ฒ„ํผ์— ๋‚จ์•„ ์žˆ๋˜ ์ค„ ๋ฐ”๊ฟˆ ๋ฌธ์ž๋งŒ ์ฝ์–ด์„œ ๋นˆ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๋ฌธ์ œ ์ƒํ™ฉ ์ฝ”๋“œ
// ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ์•ˆ๋‚ด ๋ฌธ๊ตฌ ์ถœ๋ ฅ
System.out.print("์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ(0 ํฌํ•จ) : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ์–‘์˜ ์ •์ˆ˜๋ฅผ firstNumber ๋ณ€์ˆ˜์— ํ• ๋‹น
int firstNumber = scanner.nextInt();

// ๋‘ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ์•ˆ๋‚ด ๋ฌธ๊ตฌ ์ถœ๋ ฅ
System.out.print("๋‘ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ(0 ํฌํ•จ) : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ์–‘์˜ ์ •์ˆ˜๋ฅผ secondNumber ๋ณ€์ˆ˜์— ํ• ๋‹น
int secondNumber = scanner.nextInt();

// ์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ(+, -, *, /) ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ๋ฌธ๊ตฌ
System.out.println("์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ(+, -, *, /) ์ž…๋ ฅ : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ๋ฌธ์ž์—ด์„ operator ๋ณ€์ˆ˜์— ํ• ๋‹น
String operator = scanner.nextLine();  // ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ œ ๋ฐœ์ƒ

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ •์ˆ˜ํ˜• ์ˆซ์ž ์ž…๋ ฅ ํ›„ ๋ฌธ์ž์—ด ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋นˆ ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋œ๋‹ค.

  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
  • ๋ฐฉ๋ฒ• 1 : nextLine( ) ํ˜ธ์ถœ๋กœ ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž ์†Œ๋น„ํ•˜๊ธฐ
    • nextLine( ) ํ˜ธ์ถœ ํ›„, ๋‚จ์•„ ์žˆ๋Š” ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ์†Œ๋น„ํ•˜๊ธฐ ์œ„ํ•ด์„œ scanner.nextLine( )์„ ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•œ๋‹ค.
// ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ์•ˆ๋‚ด ๋ฌธ๊ตฌ ์ถœ๋ ฅ
System.out.print("์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ(0 ํฌํ•จ) : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ์–‘์˜ ์ •์ˆ˜๋ฅผ firstNumber ๋ณ€์ˆ˜์— ํ• ๋‹น
int firstNumber = scanner.nextInt();

// ๋‘ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ์•ˆ๋‚ด ๋ฌธ๊ตฌ ์ถœ๋ ฅ
System.out.print("๋‘ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ(0 ํฌํ•จ) : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ์–‘์˜ ์ •์ˆ˜๋ฅผ secondNumber ๋ณ€์ˆ˜์— ํ• ๋‹น
int secondNumber = scanner.nextInt();

// ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž ์†Œ๋น„
scanner.nextLine();

// ์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ(+, -, *, /) ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ๋ฌธ๊ตฌ
System.out.println("์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ(+, -, *, /) ์ž…๋ ฅ : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ๋ฌธ์ž์—ด์„ operator ๋ณ€์ˆ˜์— ํ• ๋‹น
String operator = scanner.nextLine();  // ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ œ ๋ฐœ์ƒ
  • ๋ฐฉ๋ฒ• 2 : next( ). charAt(0) ํ™œ์šฉํ•˜๊ธฐ
    • ๊ณต๋ฐฑ์ด๋‚˜ ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•˜๋Š” next( )๋ฅผ ์‚ฌ์šฉํ•ด ์ž…๋ ฅ์„ ๋ฐ›๊ณ , ์ฒซ ๊ธ€์ž๋งŒ ์ถ”์ถœํ•œ๋‹ค.
    • ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
 // ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ์•ˆ๋‚ด ๋ฌธ๊ตฌ ์ถœ๋ ฅ
System.out.print("์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ(0 ํฌํ•จ) : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ์–‘์˜ ์ •์ˆ˜๋ฅผ firstNumber ๋ณ€์ˆ˜์— ํ• ๋‹น
int firstNumber = scanner.nextInt();

// ๋‘ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ์•ˆ๋‚ด ๋ฌธ๊ตฌ ์ถœ๋ ฅ
System.out.print("๋‘ ๋ฒˆ์งธ ์ •์ˆ˜ ์ž…๋ ฅ(0 ํฌํ•จ) : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ์–‘์˜ ์ •์ˆ˜๋ฅผ secondNumber ๋ณ€์ˆ˜์— ํ• ๋‹น
int secondNumber = scanner.nextInt();

// ์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ(+, -, *, /) ์ž…๋ ฅ ๋ฐ›๊ธฐ ์ „ ๋ฌธ๊ตฌ
System.out.println("์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ(+, -, *, /) ์ž…๋ ฅ : ");
// ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ๋ฌธ์ž์—ด์—์„œ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž(์—ฐ์‚ฐ ๊ธฐํ˜ธ)๋ฅผ operator ๋ณ€์ˆ˜์— ํ• ๋‹น
char operator = scanner.next().charAt(0);
  • ๊ฒฐ๋ก 
    • ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ• ์„ ํƒํ•˜๊ธฐ
      • ๋ฌธ์žฅ ์ž…๋ ฅ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ธ€์ž๋ฅผ ๋ฐ›๋Š” ๊ฒฝ์šฐ : scanner.nextLine( ) ์‚ฌ์šฉ.
      • ์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ์ฒ˜๋Ÿผ ๋ช…ํ™•ํ•œ ์ฒซ ๊ธ€์ž๋งŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ : scanner.next( ).charAt(0) ์‚ฌ์šฉ.

  • ๋ฌธ์ œ ์ƒํ™ฉ
    • ์‚ฌ์šฉ์ž์—๊ฒŒ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ๋„ฃ์—ˆ์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต๋ฌธ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋ฐฐ์น˜ํ–ˆ์„ ๋•Œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ „์— ์ข…๋ฃŒ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š” ๋น„ํšจ์œจ์ ์ธ ํ๋ฆ„์ด ๋ฐœ์ƒํ–ˆ๋‹ค.
  • ๋ฌธ์ œ ์›์ธ
    • ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํ๋ฆ„๊ณผ ๋งž์ง€ ์•Š๊ฒŒ ๋ฐ˜๋ณต๋ฌธ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ข…๋ฃŒ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์˜๋„์™€ ๋‹ฌ๋ผ์กŒ๋‹ค.
    • ์ข…๋ฃŒ ์—ฌ๋ถ€๋ฅผ ๋งˆ์ง€๋ง‰์— ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ์ด ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด ํ๋ฆ„์ด์—ˆ๋‹ค.
  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    • ์ข…๋ฃŒ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต๋ฌธ์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์œผ๋กœ ์ด๋™ํ•ด์„œ ์‚ฌ์น™์—ฐ์‚ฐ, ์ €์žฅ, ์‚ญ์ œ ์ž‘์—…์„ ์™„๋ฃŒํ•œ ํ›„ ์ข…๋ฃŒ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋„๋ก ์ˆ˜์ •ํ–ˆ๋‹ค.
    • ํ”„๋กœ๊ทธ๋žจ ์ž‘์—… ํ๋ฆ„์ด ๋” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋‹ค.
  • ๊ฒฐ๋ก 
    • ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต๋ฌธ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ž‘์—… ํ๋ฆ„์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ ์ƒ๊ฐํ•ด๋ณด๋Š” ์ ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 


 

Lv2 ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

  • ๋ฌธ์ œ ์ƒํ™ฉ
    • ์‚ฌ์น™์—ฐ์‚ฐ(๋ง์…ˆ, ๋บ„์…ˆ, ๊ณฑ์…ˆ, ๋‚˜๋ˆ—์…ˆ)์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋˜ ์ค‘, ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ ์‹œ ๋ถ„๋ชจ๊ฐ€ 0์ธ ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์ด ArithmeticException์œผ๋กœ ์ข…๋ฃŒ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
  • ๋ฌธ์ œ ์›์ธ
    • ์‚ฌ์ง์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” operate ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์ง€๋งŒ, ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ ์‹œ ๋ถ„๋ชจ๊ฐ€ 0์ธ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์กฐ๊ฑด๋ฌธ์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๋‹ค.
    • ๋ถ„๋ชจ๊ฐ€ 0์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒ€์ฆ ๋กœ์ง์ด ์—†์—ˆ๋‹ค.
    • ๋ถ„๋ชจ๊ฐ€ 0์ผ ๊ฒฝ์šฐ ArithmeticException์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • ๋ฌธ์ œ ์ƒํ™ฉ ์ฝ”๋“œ

operate ๋ฉ”์„œ๋“œ

// ์‚ฌ์น™์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ
public int operate (int firstNumber, int secondNumber, char operator) {
    int result = 0;

    switch (operator) {
        case '+' :
            result = firstNumber + secondNumber;
            break;
        case '-' :
            result = firstNumber - secondNumber;
            break;
        case '*' :
            result = firstNumber * secondNumber;
            break;
        case '/' :
            result = firstNumber / secondNumber;
            break;
        default :
            System.out.println("์ž˜๋ชป๋œ ์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ์ž…๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.");
    }
    return result;
}

App ํด๋ž˜์Šค์—์„œ ๋ฉ”์„œ๋“œ ํ™œ์šฉ

int result = calculatorLv2.operate(firstNumber, secondNumber, operator);

secondNumber์— 0์ด ๋“ค์–ด์˜ค๋ฉด ArithmeticException์ด ๋ฐœ์ƒํ•˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋œ๋‹ค.

  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
  • ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— ์ž…๋ ฅ๊ฐ’ ๊ฒ€์ฆํ•˜๊ธฐ
    • ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์€ ํ›„ if ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ secondNumber๊ฐ€ 0์ด๊ณ  ์—ฐ์‚ฐ์ž๊ฐ€ ๋‚˜๋ˆ—์…ˆ(/)์ธ ๊ฒฝ์šฐ ๋‹ค์‹œ ์ž…๋ ฅ์„ ์š”์ฒญํ•œ๋‹ค.
    • ์ž˜๋ชป๋œ ์ž…๋ ฅ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ™•์ธํ•ด์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ–ˆ๋‹ค.
// ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ ์‹œ ๋ถ„๋ชจ์— 0 ์ž…๋ ฅ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ์„ค์ •
// if ์กฐ๊ฑด๋ฌธ์œผ๋กœ ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’ ํ™•์ธ ํ›„ ๊ฒฐ์ •
if (secondNumber == 0 && operator == '/') {
    System.out.println("๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์—์„œ ๋ถ„๋ชจ(๋‘ ๋ฒˆ์งธ ์ •์ˆ˜)์— 0์ด ์ž…๋ ฅ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.");
    continue;
}

// ์ž…๋ ฅ ๋ฐ›์€ ์–‘์˜ ์ •์ˆ˜์™€ ์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ if ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ result ๋ณ€์ˆ˜์— ์ €์žฅ
int result = calculatorLv2.operate(firstNumber, secondNumber, operator);
  • ๊ฒฐ๋ก 
    • ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ „์— ๋ถ„๋ชจ๊ฐ€ 0์ด๊ณ  ์—ฐ์‚ฐ์ž๊ฐ€ ๋‚˜๋ˆ—์…ˆ(/)์ธ ๊ฒฝ์šฐ๋ฅผ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์‚ฌ์ „์— ํ™•์ธํ•œ๋‹ค.
    • ์ž˜๋ชป๋œ ์ž…๋ ฅ์„ ๋ฐ›๊ฒŒ ๋˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ˆ๋‚ด ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๋‹ค์‹œ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.