๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
SW์‚ฌ๊ด€ํ•™๊ต ์ •๊ธ€/๊ฐœ๋ฐœ์ผ์ง€ - TIL

[Week03] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - DFS / BFS ๋ฐฑ์ค€ ๋ฌธ์ œ

by young-ji 2022. 4. 21.

๋‘ ๋ฌธ์ œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ์ค€์ด ์•ฝ๊ฐ„ ๋ชจํ˜ธํ•˜์ง€๋งŒ..

๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋งŒ๋‚ฌ๋˜ ๋ช‡๋ช‡ ์œ ํ˜•๋“ค์„ ๊นŒ๋จน์ง€์•Š๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•ด๋‘”๋‹ค. 

 

DFS / ๋ฐฑํŠธ๋ž˜ํ‚น

nums = [1,2,3]
result = []
permute = []
def dfs():
    if len(permute) == len(nums) :
        result.append(permute[:])
        return
    
    for i in range(len(nums)) :
        if nums[i] not in permute :
            permute.append(nums[i])
            dfs()
            permute.pop()

dfs()
print(result)

 

DFS

25731๋ฒˆ : ๋น™์‚ฐ

https://www.acmicpc.net/problem/2573

 

2573๋ฒˆ: ๋น™์‚ฐ

์ฒซ ์ค„์—๋Š” ์ด์ฐจ์› ๋ฐฐ์—ด์˜ ํ–‰์˜ ๊ฐœ์ˆ˜์™€ ์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜ N๊ณผ M์ด ํ•œ ๊ฐœ์˜ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. N๊ณผ M์€ 3 ์ด์ƒ 300 ์ดํ•˜์ด๋‹ค. ๊ทธ ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ์ค„๋งˆ๋‹ค ๋ฐฐ์—ด์˜ ๊ฐ ํ–‰์„

www.acmicpc.net

: 2์ฐจ์› ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ

: โ—๏ธ์–ผ์Œ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋…น์ด๋ฉด ์•„์ง ๋…น์ง€์•Š์€ ์–ผ์Œ์—๋„ ์˜ํ–ฅ์ด ๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๋…น๋Š” ์–ผ์Œ๋“ค์„ ๋”ฐ๋กœ ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ํ•œ ํ…€์ด ๋๋‚œ ํ›„ ํ•œ๊บผ๋ฒˆ์— ์ ์šฉํ•ด์ค€๋‹ค. 

 

 

2617๋ฒˆ : ๊ตฌ์Šฌ ์ฐพ๊ธฐ

https://www.acmicpc.net/problem/2617

 

2617๋ฒˆ: ๊ตฌ์Šฌ ์ฐพ๊ธฐ

๋ชจ์–‘์€ ๊ฐ™์œผ๋‚˜, ๋ฌด๊ฒŒ๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅธ N๊ฐœ์˜ ๊ตฌ์Šฌ์ด ์žˆ๋‹ค. N์€ ํ™€์ˆ˜์ด๋ฉฐ, ๊ตฌ์Šฌ์—๋Š” ๋ฒˆํ˜ธ๊ฐ€ 1,2,...,N์œผ๋กœ ๋ถ™์–ด ์žˆ๋‹ค. ์ด ๊ตฌ์Šฌ ์ค‘์—์„œ ๋ฌด๊ฒŒ๊ฐ€ ์ „์ฒด์˜ ์ค‘๊ฐ„์ธ (๋ฌด๊ฒŒ ์ˆœ์„œ๋กœ (N+1)/2๋ฒˆ์งธ) ๊ตฌ์Šฌ์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ

www.acmicpc.net

: ๊ตฌ์Šฌ์„ ์–ด๋–ค ์‹์œผ๋กœ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ• ์ง€๋งŒ ๋– ์˜ค๋ฅด๋ฉด ํฌ๊ฒŒ ์–ด๋ ต์ง€์•Š์€ ๋ฌธ์ œ์ด๋‹ค. (๊ทธ๊ฒŒ ์–ด๋ ต์ง€๋งŒ..)

: ๊ตฌ์Šฌ์˜ ๋ฌด๊ฒŒ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•˜์—ฌ ํŠน์ • ๋…ธ๋“œ์˜ ์ž์‹๋…ธ๋“œ๊ฐ€ ๊ตฌ์Šฌ์˜ n/2๊ฐœ ์ด์ƒ์ผ๋•Œ ์ค‘๊ฐ„์— ์˜ฌ ์ˆ˜ ์—†๋Š” ๊ตฌ์Šฌ์ด๋‹ค. 

: defauldict()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธํ•˜๊ฒŒ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜์ด๋‹ค. - ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋ฌธ์ œ์—†์ด ๊ตฌํ˜„๊ฐ€๋Šฅ

light = defaultdict(list) #defauldict์„ ์‚ฌ์šฉํ•ด์„œ ์„ ์–ธ 
heavy = defaultdict(list)
for i,j in biz :
    light[i].append(j) 
    heavy[j].append(i) 
    
# ํ‚ค๊ฐ’์ด ์—†์œผ๋ฉด ๋นˆ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ €์žฅ๋˜๊ธฐ๋•Œ๋ฌธ์— 
# ์—†๋Š” ์ธ๋ฑ์Šค์— ์ ‘๊ทผํ•˜์˜€์„๋•Œ๋„ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€์•Š๋Š”๋‹ค.

 

 

14888๋ฒˆ : ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ

https://www.acmicpc.net/problem/14888

 

14888๋ฒˆ: ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ

์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(2 ≤ N ≤ 11)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” A1, A2, ..., AN์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Ai ≤ 100) ์…‹์งธ ์ค„์—๋Š” ํ•ฉ์ด N-1์ธ 4๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ฐจ๋ก€๋Œ€๋กœ ๋ง์…ˆ(+)์˜ ๊ฐœ์ˆ˜, ๋บ„์…ˆ(-)์˜ ๊ฐœ์ˆ˜, 

www.acmicpc.net

: DFS๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š”์ง€ ์ž˜ ๋– ์˜ค๋ฅด์ง€์•Š๋Š”๋‹ค. 

: ์ด์ „์— ์ˆœ์—ด(ํ•จ์ˆ˜)๋กœ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ์–ด์„œ ๊ทธ๋Ÿฐ์ง€ ์ˆœ์—ด ๋ฐ–์— ๋– ์˜ค๋ฅด์ง€์•Š์•„ ๋ฐฑํŠธ๋ ˆํ‚น์œผ๋กœ ๋ชจ๋“  ์ˆœ์—ด ์กฐํ•ฉ์„ ๊ตฌํ•œ๋‹ค์Œ์— ์—ฐ์‚ฐํ•˜์—ฌ ์ตœ์†Œ,์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. > ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตณ์ด ๊ตฌํ˜„ํ•˜์—ฌ ์ •๋‹ต์€ ๋งž์•˜์ง€๋งŒ ์–ด๋–ค ๋ฉ”๋ฆฌํŠธ๋„ ์—†์—ˆ๋‹ค. 

: dfs๋ฐฉ์‹์œผ๋กœ ํ’€์—ˆ์„ ๊ฒฝ์šฐ ์™„์ „ํƒ์ƒ‰์ด๋ผ๋Š” ์ ์€ ๋˜‘๊ฐ™์ง€๋งŒ depth๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ๋‚จ์•„์žˆ๋Š” ๋ชจ๋“  ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ๋กœ ๊ฐ€์ง€ ๋ป—์–ด ๋‚˜๊ฐ€๋“ฏ์ด ํ•จ์ˆ˜๋ฅผ ์žฌํ˜ธ์ถœํ•ด์ฃผ๋ฉด์„œ ์—ฐ์‚ฐ์„ ๋ฐ˜๋ณตํ•˜์ง€์•Š์•„๋˜์„œ ํ›จ์”ฌ ํšจ์œจ์ ์ด๋‹ค. 

 

 

 

BFS

18352๋ฒˆ : ํŠน์ • ๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ

https://www.acmicpc.net/problem/18352

 

18352๋ฒˆ: ํŠน์ • ๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ

์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜ N, ๋„๋กœ์˜ ๊ฐœ์ˆ˜ M, ๊ฑฐ๋ฆฌ ์ •๋ณด K, ์ถœ๋ฐœ ๋„์‹œ์˜ ๋ฒˆํ˜ธ X๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ ๋‘ ๊ฐœ

www.acmicpc.net

: ์‹œ์ž‘ ์ •์ ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€ ๊ฐˆ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ ๊ตฌํ•˜๊ธฐ

: while ๋ฌธ์— level์„ ์„ธ์„œ n๋ฒˆ์ด ๋˜๋ฉด ์ข…๋ฃŒ๋˜๋„๋กํ•œ๋‹ค. ( bfs๋Š” ํ•ญ์ƒ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. )

: queue(deque)๋ฅผ ์‚ฌ์šฉํ•˜์ง€์•Š๊ณ  ๋ฐฐ์—ด๋กœ๋งŒ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๋™์ผํ•œ ๋ ˆ๋ฒจ์ด์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์ „๋ถ€ ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ณ  popํ•˜๋Š” ๋Œ€์‹  ๋ฆฌ์ŠคํŠธ์— ๋“ค์–ด์žˆ๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๋‹ค๋ฅธ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

 

 

7569๋ฒˆ : ํ† ๋งˆํ† 

https://www.acmicpc.net/problem/7569

 

7569๋ฒˆ: ํ† ๋งˆํ† 

์ฒซ ์ค„์—๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜ M,N๊ณผ ์Œ“์•„์˜ฌ๋ ค์ง€๋Š” ์ƒ์ž์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” H๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. M์€ ์ƒ์ž์˜ ๊ฐ€๋กœ ์นธ์˜ ์ˆ˜, N์€ ์ƒ์ž์˜ ์„ธ๋กœ ์นธ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‹จ, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100,

www.acmicpc.net

: 3์ฐจ์› ๊ทธ๋ž˜ํ”„ - 2์ฐจ์› ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์—์„œ ์œ„์•„๋ž˜๋งŒ ์ถ”๊ฐ€๋กœ ํ™•์ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

: ๋น™์‚ฐ๊ณผ ๋‹ฌ๋ฆฌ ํ•œ๋ฒˆ ์ ‘๊ทผํ•œ ์˜์—ญ์€ ์™„๋ฃŒ๋˜์–ด ์žฌ์ ‘๊ทผ ํ•˜์ง€์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ ํ™•์ธ์‹œ ๋ฐ”๋กœ ์ ์šฉํ•˜๊ณ  visited์— ์ฒดํฌํ•ด์ค€๋‹ค. 

:โ—๏ธ์‹œ์ž‘ ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๋‹ด์œผ๋ฉด dfs๊ฐ€ ํ•œ๋ฒˆ ๋Œ ๋•Œ ์ธ์ ‘ํ•ด์žˆ๋Š” ๊ทธ๋ž˜ํ”„๋งŒ ์ ์šฉ๋˜๊ธฐ๋•Œ๋ฌธ์— ํ•˜๋ฃจ์— ๋ชจ๋“  ๊ทธ๋ž˜ํ”„ ์‚ฌ์ดํด์„ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋“  ์ดˆ๊ธฐ๊ฐ’์„ ํ์— appendํ•ด์ค€๋‹ค. 

 

 

18405๋ฒˆ : ๊ฒฝ์Ÿ์  ์ „์—ผ

https://www.acmicpc.net/problem/18405

 

18405๋ฒˆ: ๊ฒฝ์Ÿ์  ์ „์—ผ

์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N, K๊ฐ€ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ ์‹œํ—˜๊ด€์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ–‰์€ N๊ฐœ์˜ ์›์†Œ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ํ•ด๋‹น ์œ„์น˜

www.acmicpc.net

: ๋‹จ์ˆœ bfs๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋ช‡๋ช‡ ํ•จ์ •์ด ์žˆ์—ˆ๋‹ค. 

: ๐Ÿ”‘ ์ˆซ์ž๊ฐ€ ์ž‘์€ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ๋จผ์ € ํผ์ง„๋‹ค > ์šฐ์„ ์ˆœ์œ„ ํ ์‚ฌ์šฉ

: ๐Ÿ”‘ ๋ฐ”์ด๋Ÿฌ์Šค ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋Š”๊ฒŒ 1์ดˆ, 1์ดˆ ํ›„์— ๋ฐ”์ด๋Ÿฌ์Šค ๊ฐœ์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•ด ์ฃผ๋Š”๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค. 

 

 

2665 ๋ฒˆ : ๋ฏธ๋กœ๋งŒ๋“ค๊ธฐ

https://www.acmicpc.net/problem/2665

 

2665๋ฒˆ: ๋ฏธ๋กœ๋งŒ๋“ค๊ธฐ

์ฒซ ์ค„์—๋Š” ํ•œ ์ค„์— ๋“ค์–ด๊ฐ€๋Š” ๋ฐฉ์˜ ์ˆ˜ n(1 ≤ n ≤ 50)์ด ์ฃผ์–ด์ง€๊ณ , ๋‹ค์Œ n๊ฐœ์˜ ์ค„์˜ ๊ฐ ์ค„๋งˆ๋‹ค 0๊ณผ 1์ด ์ด๋ฃจ์–ด์ง„ ๊ธธ์ด๊ฐ€ n์ธ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. 0์€ ๊ฒ€์€ ๋ฐฉ, 1์€ ํฐ ๋ฐฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

www.acmicpc.net

: ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•ด ํ•ด๊ฒฐ. ์‚ฌ์‹ค ์•„์ง ์™„์ „ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๊ฒ€์€๋ฐฉ์˜ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๋Š”๊ฑฐ๊ฐ™์€๋ฐ..๐Ÿค”๐Ÿค”๐Ÿค”

: ์šฐ์„ ์ˆœ์œ„ ํ๊ฐ€ ์•„๋‹Œ appendleft๋ฅผ ์‚ฌ์šฉํ•˜๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ํ›„์— ๋‹ค์‹œ ํ™•์ธ์˜ˆ์ •.........................

 


 

์•„์ง ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€์–ด์•ผํ•˜๋Š”์ง€ ์ž˜ ๋– ์˜ค๋ฅด์ง€์•Š๋Š”๋‹ค... ๋งŽ์ด ํ’€์–ด๋ณด๋ฉด ์•Œ์ˆ˜์žˆ๊ฒ ์ง€

 

์Šคํƒ(dfs)๊ณผ ํ(bfs) ์‚ฌ์šฉ์˜ ์ฐจ์ด
์Šคํƒ์˜ ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ๊ตฌํ•˜๋Š”๊ฒƒ ์™ธ์— ๋”ฑํžˆ ์‘์šฉํ•  ์ ์ด ์—†์–ด๋ณด์ธ๋‹ค. ํ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š”, ๊ฐ™์€ ์œ„์ƒ ์ˆœ์„œ๋ฅผ ๊ฐ€์ง„ ๋…ธ๋“œ๋ฅผ ์ถ”์ถœํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. 

 

 

๋ฌธ์ œ ์œ ํ˜•

  1. ๋ฐฉ๋ฌธ๊ฐ€๋Šฅํ•œ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ : ๋ฐฉ๋ฌธํ• ๋•Œ ๋งˆ๊ฐ€ cnt += 1
  2. ๋ชฉ์ ์ง€๊นŒ์ง€ ๋„๋‹ฌํ• ๋•Œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ : 2์ฐจ์› ํ˜•ํƒœ : move offset ๋ณ€์ˆ˜(dx,dy)
  3. ์„œ๋กœ ์ธ์ ‘ํ•˜์ง€์•Š์€ ์ง€์—ญ์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ - 2์ฐจ์› ํ˜•ํƒœ : ์ด์ค‘ for ๋ฅผ ํ†ตํ•ด ๋ฐฉ๋ฌธ ์•ˆํ•œ๊ณณ์„ ์‹œ์ž‘์ ์œผ๋กœ ๋ชจ๋‘ ๋ฐฉ๋ฌธ
  4. ์ •์ƒ ๋…ธ๋“œ ๊ฐ์—ผ์‹œํ‚ค๊ธฐ - ๊ฐ์—ผ๋œ ๋…ธ๋“œ๋“ค์„ ๋ชจ๋‘ ํ์— ๋„ฃ๊ณ  ์‹œ์ž‘ํ•œ๋‹ค!!
  5. ๋™์ผ ์œ„์น˜์— ์žฌ๋ฐฉ๋ฌธ์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ

 

์˜ค๋Š˜๋„ ์—ด์ฝ”!!๐Ÿ˜‡๐Ÿ˜ญ

๋Œ“๊ธ€