์ด๋ฒ์๋ ์ด๊น์์ด ๋์์จ ์ค๋ ฅ์ง๋จํ๊ฐ ์๊ฐ~
์ง๋จ๊ฒฐ๊ณผ
์ ๋ฒ์ฃผ์ ๊ฐ์ ๋ฐฑํธ๋ํน ๋ถ๋ถ์ด ๋ถ์กฑํ๋ค๋ ์ง๋จ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์๋ค.
๋๋ ๋ด๊ฐ ์ด ๊ฐ๋ ์ ๋ง์คํฐํ๋ค!์ ๋ํ ๊ธฐ์ค์ '๋จํํ ์ค๋ช ํ ์ ์๋๊ฐ?'๋ก ์ผ๊ณ ์๋ค.
๊ทธ๋ฐ๋ฐ, ์์งํ ๊ณต๋ถํ๋ฉด์๋ ๋ฐฑํธ๋ํน ์ฐ์ต๋ฌธ์ ๋ฅผ ํ ๋ ๋จํํ ์ค๋ช ํ ์ ์์ ์์ ์ ์์๋ค.
์ฝ๋ํธ๋ฆฌ๋ ๊ทธ ๋ง์์ ์์๋์ง ๋งค์ฃผ ๋๋ผ์ง๋ง,,์ง๋จ ๋๋ฌด ์ ํํ๋ค..
์ด๋ ๊ฒ ๋นผ๋๋ฐ๋ ๋ชปํ๊ฒ ๋์์ผ๋ ๋ฐฑํธ๋ํน์ ์ผ๋ฅธ ๋ค์ ๊ณต๋ถํด๋ด์ผ๊ฒ ๋ค ๋ง์์ ๋จน๊ณ ๊ณต๋ถ๋ฅผ ์์ํ๋ค.
๋ฐฑํธ๋ํน์ด๋ผ๋ ๊ฒ ์ฐธ,, ์ด๋ก ์ ์ดํด๊ฐ ๋๋๋ฐ ๋ฌธ์ ๋ก ํ ๋๊ฐ ๋๋ฉด ๋๊ฐ ์ ์ง๋๋ค. ๊ทผ๋ฐ ๋ฌธ์ ๋ฅผ ๋ช ๊ฐ ํ์ด๋ณด๋๊น ์ด๋ก ์์ฒด๋ ๊น์ด ์๊ฒ ํ์ ์ ๋ชปํ๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋์๋ค.
ํ์ต ์ ๋ต
๋ฐฑํธ๋ํน์ ๊ด๋ จ๋ ์นดํ ๊ณ ๋ฆฌ๋ ์ค๋ฅธ์ชฝ ์ฌ์ง๊ณผ ๊ฐ์๋ค
๋ฐฑํธ๋ํน์ ์ ์ ๊ณต๋ถํ ๋์๋ ๋ค๋ฅด๊ฒ ์ด์ ์๊ณ ๋ฆฌ์ฆ์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ค๋ค์ ๊ทธ๋ฐ์ง ๋ฌธ์ ํ๋๋น ์์๋๋ ์๊ฐ์ด ๊ต์ฅํ ๊ธธ์๋ค.
๊ทธ๋์ ์ ๋ถ ๋ค ํ๊ธฐ์๋ ๋ฌด๋ฆฌ๊ฐ ์๋ค๊ณ ํ๋จ๋์๊ณ , ๋ฐฑํธ๋ํน์ ๊ธฐ๋ณธ๊ณผ ์ด๋ค ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋์ง๋ฅผ ํ์ ํ๋๊ฒ ๋จผ์ ์๊ธฐ๋๋ฌธ์ ๋๊ณ ์์ ์ง์์ด ์ฐ์ ๋์ด์ผํ๋ค๊ณ ํ๋จํ๋ค.
์ด๋ฒ์ฃผ๋ ๊ผญ ๋ฐฑํธ๋ํน ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์ ๊ธฐ๋ณธ๊ฐ๋ ์ ๋ํ ๋ด์ฉ์ ์ฃผ์ฒด์ ์ผ๋ก ์ดํดํ๊ณ , ์ด์ ์ ํ์๋ ์ฝ๋๋ฅผ ๋ณด์ง ์๊ณ ๋ค์ ์์ฑํด๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค.
ํ์๋ ๋ฌธ์
์ด๋ฒ์ ๊ณจ๋ผ์จ ๋ฌธ์ ๋ ๋๋ฌด ๊ฐ๋จํ๊ฒ ์ง๋ง, ๋ค๋ฅธ ํ๋ซํผ์์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ ๋ ๋ง์ด ๋์๋ ํ์ด์ ๊ธฐ๋ณธ์ด ๋๋ ๊ฒ ๊ฐ์์ ์ ์ ํด์๋ค.
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 ๐ซถ
์ด๊ฒ ๋ฐ๋ก ์ฑ์ทจ๊ฐ์ธ๊ฐ..
์ฑ์ฅ๊ณก์ ๊ฐ๋ณด์๊ณ ~
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ/13164] ํ๋ณต ์ ์น์ (๊ทธ๋ฆฌ๋) (0) | 2023.10.11 |
---|---|
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 5์ฃผ์ฐจ (10/4-10/9), DFS (0) | 2023.10.09 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 3์ฃผ์ฐจ (9/20-9/25), ๋ฐฑํธ๋ํน (0) | 2023.09.23 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 2์ฃผ์ฐจ (9/13-9/18), ์์ ํ์ (0) | 2023.09.18 |
[BOJ/1254] ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ (๋ฌธ์์ด) (0) | 2023.09.13 |