๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

[์ฝ”๋“œํŠธ๋ฆฌ ์ฑŒ๋ฆฐ์ง€] 3์ฃผ์ฐจ (9/20-9/25), ๋ฐฑํŠธ๋ž˜ํ‚น

by mingzoo 2023. 9. 23.

2์ฃผ์ฐจ ๋งˆ๋ฌด๋ฆฌ์— ํ–ˆ๋˜ ์‹ค๋ ฅ์—ญ๋Ÿ‰ํ‰๊ฐ€

์ด๋ฒˆ์ฃผ๋Š” ๋ฐฑํŠธ๋ž˜ํ‚น์— ๋Œ€ํ•œ ํ•™์Šต์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋‚˜์˜จ ์ €๋ฒˆ์ฃผ์˜ ์ง„๋‹จ์„ ํ† ๋Œ€๋กœ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค!

์ตœ๊ทผ ์ฝ”ํ…Œ์—์„œ dp์™€ ๋ฐฑํŠธ๋ž˜ํ‚น์— ๋Œ€ํ•œ ๋ฌธ์ œ๋“ค์ด ๋งŽ์ด ๋‚˜์˜ค๋Š” ๊ฒฝํ—˜์„ ํ–ˆ์—ˆ๊ณ , ๋ถ€์กฑํ•˜๋‹ค๊ณ  ๋Š๋‚€ ๋ถ€๋ถ„์ด์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ๋˜ ์–ด๊น€์—†์ด ์‹ค๋ ฅํ‰๊ฐ€์—์„œ ์ •ํ™•ํ•œ ์ง„๋‹จ์„ ๋ฐ›๊ฒŒ ๋˜์—ˆ๋‹ค.

 

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

์ด์ œ ๋“œ๋””์–ด novice ๋‹จ๊ณ„๋ฅผ ์ง€๋‚˜ intermediate๋‹จ๊ณ„๋กœ ๊ฐ”๋Š”๋ฐ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋„ˆ๋ฌด ๋ง‰ํ˜”๋‹ค.

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

์ฝ”๋“œํŠธ๋ฆฌ์˜ ์žฅ์ ์€ ์•„๋ฌด๋ž˜๋„ ์นœ์ ˆํ•˜๊ณ  ์ž์„ธํ•œ ๊ฐœ๋…์„ค๋ช…์ด์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

์ˆœ์—ด, ์กฐํ•ฉ์„ ์ œ๋Œ€๋กœ ์•„๋Š” ๊ฑฐ ์—†์ด ๋‹จ์ˆœํžˆ ํŒŒ์ด์ฌ combination ๋‚ด์žฅํ•จ์ˆ˜ ๊ฐ™์€ ๊ฑธ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋ผ์„œ ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค.

์˜ค๋Š˜ ํ’€์–ด๋ณธ ๋ฌธ์ œ๋Š” ์•„๋ฌด๋ž˜๋„ ๊ธฐ๋ณธ ๋ฌธ์ œ!

์™œ๋ƒ! ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ ์ด ๋ฌธ์ œ์˜ ํ’€์ด๋ฅผ ์Šค์Šค๋กœ ์ƒ๊ฐํ•ด๋‚ด๊ธฐ์— ์˜ค๋ž˜ ๊ฑธ๋ ธ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

ํ’€์—ˆ๋˜ ๋ฌธ์ œ

# k๊ฐœ ์ค‘์— 1๊ฐœ๋ฅผ n๋ฒˆ ๋ฝ‘๊ธฐ

 

ํ’€์ด ์ „๋žต

์ด ๋ฌธ์ œ๋Š” ์ด์ง„์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด๋œ๋‹ค.

์ฝ”๋“œํŠธ๋ฆฌ๋„ ์ด์ง„์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๊ฐœ๋…์„ ์„ค๋ช…ํ•ด์ฃผ์–ด์„œ ๋” ์ดํ•ด๊ฐ€ ์ž˜ ๊ฐ”๋‹ค.

์ด์ง„์ˆ˜ ๋ฌธ์ œ๋ฅผ ์œ„์— ๋ฌธ์ œ๋กœ ํ•ด์„ํ•˜๋ฉด k๊ฐœ์ค‘์— 1๊ฐœ๋ฅผ n๋ฒˆ ๋ฝ‘๊ธฐ => 2๊ฐœ(0,1)์ค‘์— 1๊ฐœ๋ฅผ n๋ฒˆ ์„ ํƒํ•˜๊ธฐ๊ฐ€ ๋˜๋‹ˆ๊นŒ ์ด๊ฑธ ๋จผ์ € ์ƒ๊ฐํ•ด๋ณด์ž

๊ทธ๋Ÿฌ๋ฉด ์ž๋ฆฟ์ˆ˜๋งˆ๋‹ค 0,1 ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๊ณ , ์ž๋ฆฌ๋งˆ๋‹ค ๋„ฃ๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์„ choose_number()์ด๋ผ๊ณ  ํ•ด๋ณด์ž

curr

์„ธ์ž๋ฆฌ์ˆ˜(n=3)์ด๋ฉด choose_number(0)๋ถ€ํ„ฐ choose_number(2)๊นŒ์ง€ ๋Œ๋ฉด๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด ํ•จ์ˆ˜์˜ ์ข…๋ฃŒ์กฐ๊ฑด์€ n์ผ๋•Œ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋˜‘๊ฐ™์ด 2->k, 3->n์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด๋œ๋‹ค.

k, n = tuple(map(int, input().split()))

arr = []

def print_num():
    for elem in arr:
        print(elem, end=" ")
    print()

def choose_number(curr_num):
    if curr_num == n:
        print_num()
        return
    
    for i in range(1, k+1):
        arr.append(i)
        choose_number(curr_num+1)
        arr.pop()

choose_number(0)

choose_number ํ•จ์ˆ˜๋Š” curr_num์ž๋ฆฌ์— for๋ฌธ์„ ํ†ตํ•ด์„œ 1๋ถ€ํ„ฐ k๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋ธ”๋กœ๊ทธ๋กœ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ๋ฐ”๋ผ๋ณด๋‹ˆ๊นŒ ๋” ์ดํ•ด๊ฐ€ ์ž˜๋˜๊ณ  ์žˆ๋‹ค!

๋ฐฑํŠธ๋ž˜ํ‚น ์ดํ•ด๊ฐ€ ์–ด๋ ค์› ์–ด์„œ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ๋ชปํ’€์—ˆ๋Š”๋ฐ ์ดํ•ด๋์„๋•Œ ๋นจ๋ฆฌ ํ’€์–ด์„œ ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค!

๋นจ๋ฆฌ ํ’€๊ณ  ๋‚˜์„œ์˜ ๋‹ค์Œ์ฃผ ์‹ค๋ ฅ์ง„๋‹จํ‰๊ฐ€ ์ ์ˆ˜๊ฐ€ ๊ธฐ๋Œ€๋œ๋‹น,,

728x90