[BOJ][๐ŸŸก5][๋ฐฑ์ค€#03980] ์„ ๋ฐœ ๋ช…๋‹จ

์ž‘์„ฑ:    

์—…๋ฐ์ดํŠธ:

์นดํ…Œ๊ณ ๋ฆฌ:

ํƒœ๊ทธ: , , ,

๋ฌธ์ œ ์ถœ์ฒ˜

BAEKJOON Online Judge #3980


๋ฌธ์ œ

์ฑ”ํ”ผ์–ธ์Šค ๋ฆฌ๊ทธ ๊ฒฐ์Šน์ „์„ ์•ž๋‘๊ณ  ์žˆ๋Š” ๋งจ์ฒด์Šคํ„ฐ ์œ ๋‚˜์ดํ‹ฐ๋“œ์˜ ๋ช…์žฅ ํผ๊ฑฐ์Šจ ๊ฐ๋…์€ ์ด๋ฒˆ ๊ฒฝ๊ธฐ์— 4-4-2 ๋‹ค์ด์•„๋ชฌ๋“œ ์ „์ˆ ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์˜ค๋Š˜ ๊ฒฐ์Šน์ „์— ๋›ธ ์„ ๋ฐœ ์„ ์ˆ˜ 11๋ช…์€ ๋ฏธ๋ฆฌ ๊ณจ๋ผ๋‘์—ˆ์ง€๋งŒ, ์–ด๋–ค ์„ ์ˆ˜๋ฅผ ์–ด๋Š ํฌ์ง€์…˜์— ๋ฐฐ์น˜ํ•ด์•ผ ํ• ์ง€ ์•„์ง ๊ฒฐ์ •ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์ˆ˜์„์ฝ”์น˜ ๋งˆ์ดํฌ ํŽ ๋ž€์€ 11๋ช…์˜ ์„ ์ˆ˜๊ฐ€ ๊ฐ๊ฐ์˜ ํฌ์ง€์…˜์—์„œ์˜ ๋Šฅ๋ ฅ์„ 0๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ์ •์ˆ˜๋กœ ์ˆ˜์น˜ํ™” ํ–ˆ๋‹ค. 0์€ ๊ทธ ์„ ์ˆ˜๊ฐ€ ๊ทธ ํฌ์ง€์…˜์— ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด๋•Œ, ๋ชจ๋“  ์„ ์ˆ˜์˜ ํฌ์ง€์…˜์„ ์ •ํ•˜๋Š”ย ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋ชจ๋“  ํฌ์ง€์…˜์— ์„ ์ˆ˜๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผ ํ•˜๊ณ , ๊ฐ ์„ ์ˆ˜๋Š” ๋Šฅ๋ ฅ์น˜๊ฐ€ 0์ธ ํฌ์ง€์…˜์— ๋ฐฐ์น˜๋  ์ˆ˜ ์—†๋‹ค.


์ž…๋ ฅ

์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ๊ฐ์˜ ์ผ€์ด์Šค๋Š” 11์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , i๋ฒˆ ์ค„์€ 0๊ณผ 100์‚ฌ์ด์˜ 11๊ฐœ์˜ ์ •์ˆ˜ sij๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. sij๋Š” i๋ฒˆ์„ ์ˆ˜๊ฐ€ j๋ฒˆ ํฌ์ง€์…˜์—์„œ ๋›ธ ๋•Œ์˜ ๋Šฅ๋ ฅ์ด๋‹ค. ๋ชจ๋“  ์„ ์ˆ˜์—๊ฒŒ ์ ํ•ฉํ•œ ํฌ์ง€์…˜์˜ ์ˆ˜๋Š” ์ตœ๋Œ€ 5๊ฐœ์ด๋‹ค. (๋Šฅ๋ ฅ์น˜๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ค)


์ถœ๋ ฅ

๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ, ๋ชจ๋“  ํฌ์ง€์…˜์˜ ์„ ์ˆ˜๋ฅผ ์ฑ„์› ์„ ๋•Œ, ๋Šฅ๋ ฅ์น˜์˜ ํ•ฉ์˜ ์ตœ๋Œ“๊ฐ’์„ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. ํ•ญ์ƒ ํ•˜๋‚˜ ์ด์ƒ์˜ ์˜ฌ๋ฐ”๋ฅธ ๋ผ์ธ์—…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.


์˜ˆ์ œ

์ž…๋ ฅ

1
100 0 0 0 0 0 0 0 0 0 0
0 80 70 70 60 0 0 0 0 0 0
0 40 90 90 40 0 0 0 0 0 0
0 40 85 85 33 0 0 0 0 0 0
0 70 60 60 85 0 0 0 0 0 0
0 0 0 0 0 95 70 60 60 0 0
0 45 0 0 0 80 90 50 70 0 0
0 0 0 0 0 40 90 90 40 70 0
0 0 0 0 0 0 50 70 85 50 0
0 0 0 0 0 0 66 60 0 80 80
0 0 0 0 0 0 50 50 0 90 88


์ถœ๋ ฅ

970


My Sol

import sys; input = sys.stdin.readline

def calc(pos):
    global visited_pos, visited_per
    global pools, max_score, total

    if pos==11:
        if sum(visited_pos)==11 and max_score < total:
            max_score = total
        return

    # ํ•ด๋‹น ํฌ์ง€์…˜์„ ๋‹ด๋‹นํ•  ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ๋‹ค์Œ ํฌ์ง€์…˜
    if visited_pos[pos]:
        calc(pos+1)

    else:
        pool = pools[pos]
        for per, score in pool:
            if not visited_per[per]:
                visited_per[per] = 1
                visited_pos[pos] = 1
                total += score
                calc(pos+1)
                visited_per[per] = 0
                visited_pos[pos] = 0
                total -= score


T = int(input())
for _ in range(T):

    # mat ์ •์˜
    mat = [list(map(int, input().split())) for _ in range(11)]

    # pools ์ •์˜
    pools = [[] for _ in range(11)]
    for per, lst in enumerate(mat):
        for pos, score in enumerate(lst):
            if score:
                pools[pos].append((per, score))

    # ํ•ด๋‹น ํฌ์ง€์…˜ ๊ฐ€๋Šฅํ•œ ์œ ์ผํ•œ ์‚ฌ๋žŒ ์ฐพ์•„ ์ฑ„์šฐ๊ธฐ
    visited_pos = [0]*11
    visited_per = [0]*11
    total = 0
    max_score = 0
    for pos in range(11):
        if len(pools[pos]) == 1:
            per, score = pools[pos][0]
            visited_per[per] = 1
            visited_pos[pos] = 1
            total += score

    calc(0)
    print(max_score)

์ž…๋ ฅ ์ฒ˜๋ฆฌ์™€ ๋ณ€์ˆ˜

์—ฌ๋Ÿฌ ์กฐํ•ฉ๊ณผ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์šฐ์„  ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์„ ์ˆ˜(per)๋“ค์˜ ํฌ์ง€์…˜(pos)๊ณผ ๊ฐ ํฌ์ง€์…˜์˜ ์ ์ˆ˜(score)์„ mat 2์ฐจ์› ๋ฐฐ์—ด์— ์ฒ˜๋ฆฌํ•˜์—ฌ ์ •์˜ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ๊ฐ์—์„œ ์„ ์ˆ˜, ํฌ์ง€์…˜, ์ ์ˆ˜ ์ •๋ณด๋ฅผ ๋‹ด๋Š” pools 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.

mat์€ ๊ฐ ํ–‰์ด person, ๊ฐ ์—ด์ด position์ด๋ฏ€๋กœ, mat์„ enumerateํ•˜์—ฌ ๊ฐ ํ–‰, per๋งˆ๋‹ค lst๋ฅผ ๋ฐ›์•˜๊ณ , ๊ทธ ๋‚ด๋ถ€์— lst๋ฅผ ๋‹ค์‹œ enumerateํ•˜์—ฌ pos์™€ score ์ ์ˆ˜๋กœ ์ •์˜ํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  score๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ๋ฉด ํ•ด๋‹น pos์™€ per, score์„ pools[pos]์˜ ๋ฆฌ์ŠคํŠธ ๋‚ด์— (per, score) tuple๋กœ ์ €์žฅํ•œ๋‹ค.


๋Œ€์ฒด ๋ถˆ๊ฐ€๋Šฅํ•œ ํฌ์ง€์…˜ ์„ ๋ณ„

๋จผ์ € ๋Œ€์ฒด ๋ถˆ๊ฐ€๋Šฅํ•œ ์‚ฌ๋žŒ๋“ค์„ ํฌ์ง€์…˜์— ์ฑ„์›Œ์•ผ ํ•œ๋‹ค. ํ•œ ํฌ์ง€์…˜์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ํ›„๋ณด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ depth๋ฅผ ๋Š˜๋ ค๊ฐ€๋ฉฐ ํ™•์ธํ•˜๋ฉด ๋˜๋Š” ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์— 0๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ์ˆ˜์— ๋Œ€ํ•˜์—ฌ pools[pos]๊ฐ€ 1์ธ ํฌ์ง€์…˜์„ ์ฐพ๋Š”๋‹ค. pools[pos]๋Š” ๊ณง, ํ•ด๋‹น ํฌ์ง€์…˜์„ ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์„ ์ˆ˜๋“ค์˜ ๋ฒˆํ˜ธ์™€ ๋Šฅ๋ ฅ์น˜์ด๊ธฐ ๋•Œ๋ฌธ์ด๊ณ , ์ด๊ฒƒ์ด 1์ด๋ผ๋Š” ๊ฒƒ์€ ํ•œ ์‚ฌ๋žŒ๋งŒ ํ•ด๋‹น ํฌ์ง€์…˜์„ ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์ด๋‹ค.

์žฌ๊ท€ํ•จ์ˆ˜ ๋‚ด์—์„œ ํŒ๋ณ„์„ ์œ„ํ•œ visited_per๊ณผ visited_pos๋ฅผ 11๊ฐœ์˜ 0์ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ์ด๋ฅผ per๊ณผ pos๋ฅผ ์ธ๋ฑ์Šค๋กœ ํ•˜์—ฌ ๊ฐ๊ฐ 1๋กœ ์ฒดํฌํ•ด์ค€๋‹ค. ํ›„์— ์ด๊ฒƒ์ด 1์ด๋ผ๋ฉด ์ด ์ž๋ฆฌ์— ํ›„๋ณด๋ฅผ ๋„ฃ์ง€ ์•Š๊ณ  ์ง€๋‚˜์น  ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด์ ์ธ total์— score์„ ๋„ฃ์–ด์ฃผ๋ฉด ํ•œ ํฌ์ง€์…˜์— ํ•œ ์„ ์ˆ˜๋งŒ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ๊ณ„์‚ฐ์„ ๋งˆ์น  ์ˆ˜ ์žˆ๋‹ค.


calc ํ•จ์ˆ˜ 1: ์ข…๋ฃŒ์กฐ๊ฑด

PS๋ฅผ ์œ„ํ•œ ํ•จ์ˆ˜์ด๋ฏ€๋กœ ๋ƒ…๋‹ค ์ „์—ญ๋ณ€์ˆ˜๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด global์„ ๋•Œ๋ ค๋„ฃ์—ˆ๋‹ค. ์ „๋‹ฌ์ธ์ž๋Š” pos๋กœ, 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๊ณ„์‚ฐํ•˜๋ฉฐ 10๊นŒ์ง€์˜ ๊ณ„์‚ฐ์„ ์ง€๋‚˜ 11์— ๋‹ค๋‹ค๋ฅด๋ฉด ๋˜๋Œ์•„๊ฐ€์•ผ ํ•œ๋‹ค. ์ด๋•Œ sum(visited_pos)==11, ์ฆ‰ ๋ชจ๋“  ํฌ์ง€์…˜์— ์„ ์ˆ˜๊ฐ€ ์œ„์น˜ํ•˜๊ณ , ํ˜„์žฌ๊นŒ์ง€ ์ตœ๊ณ ์ ์ˆ˜๋ณด๋‹ค ์ง€๊ธˆ์˜ ๋ฐฐ์น˜๊ฐ€ ๋” ํฐ ๋ˆ„์ ์ ์ˆ˜๋ฅผ ๊ฐ€์ง„๋‹ค๋ฉด ์ด๋ฅผ ์ตœ๊ณ ์ ์ˆ˜๋กœ ๊ฐฑ์‹ ํ•˜๊ณ  ๋˜๋Œ์•„๊ฐ„๋‹ค.


calc ํ•จ์ˆ˜ 2: ํ•ด๋‹น ํฌ์ง€์…˜์— ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด?

ํ•ด๋‹น ํฌ์ง€์…˜์— ์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด for๋ฌธ์„ ๋Œ ํ•„์š”๋„ ์—†์ด ๋‹ค์Œ pos๋กœ ๋„˜์–ด๊ฐ€์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค.


calc ํ•จ์ˆ˜ 3: ์žฌ๊ท€ ์กฐ๊ฑด ์ •์˜

pools์˜ pos์ธ๋ฑ์Šค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ pool๋กœ ๋‘”๋‹ค. ์ด pool์˜ ํ•ญ๋ชฉ์€ tuple๋“ค์ธ๋ฐ, ๊ฐ๊ฐ์ด ํ•ด๋‹น pos์—์„œ ๊ฐ€์šฉํ•œ ์„ ์ˆ˜๋“ค์˜ ๋ฒˆํ˜ธ์ธ per๊ณผ score์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ด์ „ ๊ณผ์ •์—์„œ ์„ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด visited_per[per]==1์ผ ๊ฒƒ์ด๊ณ , ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋‹ค์Œ tuple๋กœ ๋„˜์–ด๊ฐ€์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ ์กฐ๊ฑด๋ฌธ์„ ๊ฑธ๊ณ , visited_per[per]์ด 0์ธ ๊ฒฝ์šฐ์— ํ•˜์œ„ ์ฝ”๋“œ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

์ฒ˜์Œ์œผ๋กœ ๋งŒ๋‚œ visited_per[per]==0์ธ per๊ณผ score์— ๋Œ€ํ•˜์—ฌ ํ•ด๋‹น per์„ pos์— ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ๊ทธ๋Ÿฌ๋ฉด visited๋Š” per๊ณผ pos์— ๋Œ€ํ•˜์—ฌ ๋ชจ๋‘ 1๋กœ ์ฒดํฌํ•ด์ฃผ๊ณ , ๋ˆ„์  ์ ์ˆ˜์ธ total์— score์„ ๋”ํ•ด ๋‹ค์Œ pos๋กœ ๋„˜์–ด๊ฐ€๋ฉด ๋˜๊ฒ ๋‹ค.

๋ชจ๋“  pos๋ฅผ ์ฐ์–ด max_score์™€ total์„ ๋น„๊ตํ•ด ๊ฐฑ์‹ ํ•˜๊ณ  ๋Œ์•„์˜ค๋ฉด visited๋ฅผ 0์œผ๋กœ ์ฒดํฌํ•ด์ œํ•˜๊ณ  total์—์„œ score์„ ๋นผ์ค€ ๋’ค ๋‹ค์Œ pool์— ๋Œ€ํ•˜์—ฌ ๋˜ ์กฐํšŒ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.


๊ฒฐ๊ณผ

๋งž์•˜์Šต๋‹ˆ๋‹ค!!


๋ชจ๋ฒ”๋‹ต์•ˆ

์ถœ์ฒ˜

from sys import stdin

T = int(stdin.readline())

ans = 0
def solve(idx,count):
    if idx == 11:
        global ans
        ans = max(ans,count)
        return

    for i in range(11):
        if players[idx][i]!= 0 and not visit[i]:
            visit[i]=True
            solve(idx+1,count+players[idx][i])
            visit[i]=False


for _ in range(T):
    ans = 0
    players = [list(map(int,stdin.readline().split())) for _ in range(11)]
    visit = [False]*11
    solve(0,0)
    print(ans)

๊ธธ์ด๊ฐ€ ์งง์œผ๋ฉด์„œ๋„ ์—ฐ์‚ฐ์†๋„๊ฐ€ ์ข‹์•˜๋˜ ๋ฌธ์ œ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

๋‚˜๋Š” ์ดˆ๋ฐ˜์— ํฌ์ง€์…˜์„ ํ˜ผ์ž ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์„ ์„ ๋ณ„ํ•ด์„œ ์ œ๊ฑฐํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— visited์— ๋Œ€ํ•ด์„œ per๊ณผ pos๊ฐ€ ๋ชจ๋‘ ํ•„์š”ํ–ˆ๋Š”๋ฐ, ์ด ๋ถ„์˜ ํ’€์ด๋Š” per์— ๋Œ€ํ•ด์„œ๋งŒ ์กฐํšŒํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด pos์˜ ์˜๋ฏธ์ธ idx๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ 10๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋•Œ๋ฌธ์— ์„ ์ˆ˜์— ๋Œ€ํ•œ visit๋งŒ ์ฒดํฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๊ฒฐํ•˜๋‹ค.

๋˜ํ•œ ๋‚˜๋Š” 0์€ ์ œ์™ธํ•˜๊ณ  score๊ฐ€ ์žˆ๋Š” ์นธ์˜ pos์™€ per์„ tuple๋กœ ํ•ด์„œ ๋ฆฌ์ŠคํŠธ์— ๋ณ„๋„๋กœ ๋‹ด๊ณ  ์ด ๊ฐ๊ฐ๋งŒ ์กฐํšŒํ–ˆ๋Š”๋ฐ, ์ด ๋ถ„์€ ๋ฌด์ฐจ๋ณ„์ ์œผ๋กœ 0๋ถ€ํ„ฐ 10๊นŒ์ง€ ๋ชจ๋“  depth์—์„œ ์กฐํšŒํ•ด์„œ โ€˜0์ด๋ฉด ๋ง๊ณ โ€™ ํ•˜๋Š” ๋ธŒ๋ฃจํŠธํฌ์Šค ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜์˜€๋‹ค. ์ด๊ฒƒ์ด ๋ฌด์ž‘์ • ์ข‹๋‹ค๊ธฐ์—” ๋‚ด ํ’€์ด์˜ ์—ฐ์‚ฐ ์‹œ๊ฐ„์ด ์•ฝ 7~8% ์ •๋„ ๋” ๋นจ๋ž๋Š”๋ฐ, depth๊ฐ€ ๊นŠ์–ด์งˆ์ˆ˜๋ก ์ด๋Ÿฌํ•œ ๋ฌด์ฐจ๋ณ„ ๊ฒ€์ƒ‰ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์—ฐ์‚ฐ ์‹œ๊ฐ„ ์ฆ๊ฐ€๊ฐ€ ์˜ํ–ฅ์„ ์ค„ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด์—๋งŒ ๊ฐ‡ํ˜€์„œ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋Š”๋ฐ max(a, b) ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ depth๊ฐ€ 11์ธ ๊ฒฝ์šฐ์— ์†์‰ฝ๊ฒŒ ๋น„๊ตํ•ด์„œ ๊ฐฑ์‹ ํ•˜์˜€๋‹ค. ์™œ maxํ•จ์ˆ˜ ์ƒ๊ฐ์„ ๋ชปํ–ˆ์ง€ใ…‹ใ…‹

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ