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

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

by mingzoo 2023. 9. 30.

์ด๋ฒˆ์—๋„ ์–ด๊น€์—†์ด ๋Œ์•„์˜จ ์‹ค๋ ฅ์ง„๋‹จํ‰๊ฐ€ ์‹œ๊ฐ„~

์ง„๋‹จ๊ฒฐ๊ณผ

์ด๋ฒˆ์ฃผ ์ƒˆ๋กœ์šด ์ง„๋‹จํ‰๊ฐ€ ๊ฒฐ๊ณผ

์ €๋ฒˆ์ฃผ์™€ ๊ฐ™์€ ๋ฐฑํŠธ๋ž˜ํ‚น ๋ถ€๋ถ„์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ์ง„๋‹จ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•˜๋‹ค.

๋‚˜๋Š” ๋‚ด๊ฐ€ ์ด ๊ฐœ๋…์„ ๋งˆ์Šคํ„ฐํ–ˆ๋‹ค!์— ๋Œ€ํ•œ ๊ธฐ์ค€์„ '๋‚จํ•œํ…Œ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?'๋กœ ์‚ผ๊ณ  ์žˆ๋‹ค. 

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

์ฝ”๋“œํŠธ๋ฆฌ๋„ ๊ทธ ๋งˆ์Œ์„ ์•Œ์•˜๋Š”์ง€ ๋งค์ฃผ ๋Š๋ผ์ง€๋งŒ,,์ง„๋‹จ ๋„ˆ๋ฌด ์ •ํ™•ํ•˜๋‹ค..

์ด๋ ‡๊ฒŒ ๋นผ๋„๋ฐ•๋„ ๋ชปํ•˜๊ฒŒ ๋˜์—ˆ์œผ๋‹ˆ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์–ผ๋ฅธ ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด๋ด์•ผ๊ฒ ๋‹ค ๋งˆ์Œ์„ ๋จน๊ณ  ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.

๋ฐฑํŠธ๋ž˜ํ‚น์ด๋ผ๋Š” ๊ฒŒ ์ฐธ,, ์ด๋ก ์€ ์ดํ•ด๊ฐ€ ๋˜๋Š”๋ฐ ๋ฌธ์ œ๋กœ ํ’€ ๋•Œ๊ฐ€ ๋˜๋ฉด ๋‡Œ๊ฐ€ ์ •์ง€๋œ๋‹ค. ๊ทผ๋ฐ ๋ฌธ์ œ๋ฅผ ๋ช‡ ๊ฐœ ํ’€์–ด๋ณด๋‹ˆ๊นŒ ์ด๋ก  ์ž์ฒด๋„ ๊นŠ์ด ์žˆ๊ฒŒ ํŒŒ์•…์„ ๋ชปํ–ˆ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹ค.

 

ํ•™์Šต ์ „๋žต

๋ฐฑํŠธ๋ž˜ํ‚น์— ๊ด€๋ จ๋œ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์˜ค๋ฅธ์ชฝ ์‚ฌ์ง„๊ณผ ๊ฐ™์•˜๋‹ค

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

๊ทธ๋ž˜์„œ ์ „๋ถ€ ๋‹ค ํ’€๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จ๋˜์—ˆ๊ณ , ๋ฐฑํŠธ๋ž˜ํ‚น์˜ ๊ธฐ๋ณธ๊ณผ ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•˜๋Š”๊ฒŒ ๋จผ์ €์˜€๊ธฐ๋•Œ๋ฌธ์— ๋„“๊ณ  ์–•์€ ์ง€์‹์ด ์šฐ์„ ๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

์ด๋ฒˆ์ฃผ๋Š” ๊ผญ ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ ๊ธฐ๋ณธ๊ฐœ๋…์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ฃผ์ฒด์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ , ์ด์ „์— ํ’€์—ˆ๋˜ ์ฝ”๋“œ๋ฅผ ๋ณด์ง€ ์•Š๊ณ  ๋‹ค์‹œ ์ž‘์„ฑํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค.

 

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

์ด๋ฒˆ์— ๊ณจ๋ผ์˜จ ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•˜๊ฒ ์ง€๋งŒ, ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๋งŽ์ด ๋‚˜์™”๋˜ ํ’€์ด์˜ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์„ ์ •ํ•ด์™”๋‹ค.

# ๊ฑฐ๊พธ๋กœ ์ˆœ์—ด

1๋ถ€ํ„ฐ n๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์ •ํ™•ํžˆ ํ•œ ๋ฒˆ์”ฉ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ˆ˜์—ด์„ ๊ตฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”. ๋‹จ, ์‚ฌ์ „์ˆœ์œผ๋กœ ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” ์ˆ˜์—ด๋ถ€ํ„ฐ ๋จผ์ € ์ถœ๋ ฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

'ํ•œ ๋ฒˆ์”ฉ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ'๋ผ๋Š” ์กฐ๊ฑด์ด ๋ถ™์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ์•ˆํ–ˆ๋Š”์ง€๋ฅผ ์•Œ๊ธฐ์œ„ํ•ด์„œ visited ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ์ ‘๊ทผ์ด ๋งŽ์€ ๋ฌธ์ œ์—์„œ ์‚ฌ์šฉ๋˜๊ธฐ์— ์„ ์ •ํ•œ ๊ฒƒ์ด๋‹ค!

์ด ๋ฌธ์ œ๋Š” ์‹ฌ์ง€์–ด ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” ์ˆ˜์—ด๋ถ€ํ„ฐ ๊ฑฐ๊พธ๋กœ ์ถœ๋ ฅํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ ๋‹นํ™ฉํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆ ๊ฑฐ๊พธ๋กœ ๋Œ๋ ค์ฃผ๋ฉด ๋œ๋‹ค.

 

ํ’€์ด ์ „๋žต

1๋ถ€ํ„ฐ n๊นŒ์ง€๋ฅผ ๊ฑฐ๊พธ๋กœ for๋ฌธ์„ ๋Œ๋ฆด ์ˆ˜๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

range(n,0,-1)์„ ํ†ตํ•ด์„œ n๋ถ€ํ„ฐ 1๊นŒ์ง€ -1์”ฉ ์ค„์–ด๋“ค๋ฉด์„œ ๋ฐ˜๋ณต๋˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค.

n = int(input())
visited=[False]*(n+1)
arr=[]

def choose_number(curr_num):
    if curr_num == 0:
        for elem in arr:
            print(elem, end=" ")
        print()
        return

    for i in range(n, 0, -1):
        if visited[i]==True:
            continue
        
        visited[i] = True
        arr.append(i)
        choose_number(curr_num-1)
        arr.pop()
        visited[i] = False

choose_number(n)

์ฝ”๋“œํŠธ๋ฆฌ์˜ ๋ชจ๋ฒ• ๋‹ต์•ˆ์—์„œ๋Š” choose_number(0)์œผ๋กœ ์‹คํ–‰์„ ์‹œ์ž‘ํ•ด์„œ => if curr_num == n: ์ผ๋•Œ ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„์ด ๋˜์–ด์žˆ๋‹ค.

curr_num ๊ฐ™์€ ๊ฒฝ์šฐ, ํ•ด๋‹น ์ž๋ฆฌ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฑฐ๋ผ์„œ ๊ตณ์ด n๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ๋Š”๋ฐ ํ’€์ด๋ฅผ ๋ณด๊ณ  ์™œ ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ–ˆ์ง€,, ์‹ถ๊ธด ํ–ˆ๋‹ค

๋ฐฑํŠธ๋ž˜ํ‚น์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์กฐ๊ธˆ ๋œ ๊ฒƒ ๊ฐ™์œผ๋‹ˆ ์‘์šฉ๋ฌธ์ œ๋“ค๋„ ํ’€๋ฉด์„œ ๋ฐฑํŠธ๋ž˜ํ‚น์— ๋Œ€ํ•œ ์‹œ์•ผ๋ฅผ ๋„“ํ˜€์•ผ๊ฒ ๋‹ค.

๋Š๋‚€ ์ 

์ด๋ฒˆ์— ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ๋‹ค์‹œ ์‹ค๋ ฅ์ง„๋‹จํ‰๊ฐ€๋ฅผ ๋ณด๋ฉด์„œ ๋Š๊ผˆ๋˜ ์  ์ค‘์— ํ•˜๋‚˜๊ฐ€ ํ‰๊ฐ€๋ฅผ ํ•˜๋ฉด์„œ ๋ณต์Šต๋„ ๋œ๋‹ค๋Š” ์ ์ด์—ˆ๋‹ค.

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

ํ•˜์—ฌํŠผ! ์ทจ์ค€์„ ํ•˜๊ณ  ์žˆ๋Š” ์ง€๊ธˆ๋„ ๊ทธ๋ ‡๊ณ , ๋ชจ๋“  ๊ณต๋ถ€๊ฐ€ ์‹œ๊ฐ„์„ ์Ÿ๋Š” ๊ฒƒ์— ๋น„ํ•ด ๊ฐ€์‹œ์ ์œผ๋กœ ๋ณด์ด๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํž˜๋“  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทผ๋ฐ ์ฝ”๋“œํŠธ๋ฆฌ๋Š” ์ปค๋ฆฌํ˜๋Ÿผ๋„ ์กด์žฌํ•˜๊ณ  ์‹ค๋ ฅ์ง„๋‹จ์„ ํ†ตํ•ด์„œ ์ ์ˆ˜๋„ ๋‚˜์˜ค๊ธฐ๋•Œ๋ฌธ์— ํ€˜์ŠคํŠธ ๊นจ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์žฌ๋ฏธ๊ฐ€ ์žˆ๋‹ค.

๋ฌผ๋ก  ์ ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ณด๋‹ˆ ๊ฐœ์ธ์ ์œผ๋กœ ์ ์ˆ˜๋ฅผ ๊ณ„์† ์˜ฌ๋ฆฌ๋ ค๋Š” ์••๋ฐ•์ด ์ƒ๊ธฐ๊ธฐ๋Š” ํ•œ๋‹ค. ์ด ๋ถ€๋ถ„์€ ๋ˆ„๊ตฌํ•œํ…Œ ํ‰๊ฐ€๋ฐ›๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š” ๋งˆ์ธ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค.

 

**์ถ”๊ฐ€

๋‹ค์Œ์ฃผ์ฐจ ๊ธ€์„ ์ž‘์„ฑํ•˜๋‹ค๊ฐ€ ๋„ˆ๋ฌด ๊ธฐ๋ป์„œ ์—ฌ๊ธฐ๋‹ค๊ฐ€๋„ ๋‚จ๊ธฐ๊ณ  ์‹ถ์–ด์„œ ์ˆ˜์ •ํ•˜๋Ÿฌ ์™”๋‹ค!

์‹ ๋‚˜๋Š” ๊ทธ๋ž˜ํ”„

๊บ…! ์ ์ˆ˜์ƒ์Šน!

610 -> 645 ๐Ÿซถ

์ด๊ฒŒ ๋ฐ”๋กœ ์„ฑ์ทจ๊ฐ์ธ๊ฐ€..

์„ฑ์žฅ๊ณก์„  ๊ฐ€๋ณด์ž๊ณ ~

 

 

 

 

 

 

 

 

 

728x90