์๋ ํ์ธ์! ์ค๋์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์ ๋ฌธ์ ๋ฒํธ 15649๋ฒ๊ณผ 15650๋ฒ์ ํ์ด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ๋ค์ ์ฃผ์ด์ง ์ซ์๋ค์ ์กฐํฉํ์ฌ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ฐพ๋ ๋ฌธ์ ์ ๋๋ค. ๊ฐ ๋ฌธ์ ๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ , Python ์ฝ๋๋ฅผ ํตํด ํด๊ฒฐํด๋ณด๊ฒ ์ต๋๋ค.
1. ๋ฌธ์ ์ค๋ช
15649๋ฒ: N๊ณผ M (1)
์ฃผ์ด์ง ์ซ์ N๊น์ง์ ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
๋ฌธ์ URL : https://www.acmicpc.net/problem/15649
15650๋ฒ: N๊ณผ M (2)
์ฃผ์ด์ง ์ซ์ N๊น์ง์ ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋, ์์ด์ ์ค๋ฆ์ฐจ์์ด์ด์ผ ํฉ๋๋ค.
๋ฌธ์ URL : https://www.acmicpc.net/problem/15650
2. ์ ๊ทผ๋ฒ
๊ณตํต ์ ๊ทผ๋ฒ
1. ์ ๋ ฅ๋ฐ๊ธฐ: N๊ณผ M์ ์ ๋ ฅ๋ฐ์ต๋๋ค.
2. ๋ฐฑํธ๋ํน: ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํ์ฌ ์์ด์ ์์ฑํฉ๋๋ค.
3. ์กฐ๊ฑด ์ฒดํฌ: ์ค๋ณต์ด ์๋๋ก ํ๊ฑฐ๋ ์ค๋ฆ์ฐจ์์ด ๋๋๋ก ์กฐ๊ฑด์ ์ถ๊ฐํฉ๋๋ค.
3. ์ ๋ต ์ฝ๋
15649๋ฒ ์ ๋ต ์ฝ๋
import sys
input = sys.stdin.readline
# N๊ณผ M์ ์
๋ ฅ๋ฐ๋๋ค. N์ 1๋ถํฐ N๊น์ง์ ์ซ์, M์ ์์ด์ ๊ธธ์ด
N, M = map(int, input().split())
arr = [] # ์์ด์ ์ ์ฅํ ๋ฆฌ์คํธ
def rec(idx):
# ํ์ฌ ์์ด์ ๊ธธ์ด๊ฐ M๊ณผ ๊ฐ์ผ๋ฉด ์ถ๋ ฅํ๊ณ ์ข
๋ฃ
if idx == M:
print(*arr) # ๋ฆฌ์คํธ๋ฅผ ์ธํฉํ์ฌ ์ถ๋ ฅ
return
# 1๋ถํฐ N๊น์ง์ ์ซ์๋ฅผ ์ฐจ๋ก๋๋ก ๊ฒ์ฌ
for i in range(1, N+1):
if i not in arr: # ํ์ฌ ์ซ์๊ฐ ์์ด์ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด
arr.append(i) # ์ซ์๋ฅผ ์์ด์ ์ถ๊ฐ
rec(idx+1) # ์ฌ๊ท ํธ์ถ๋ก ๋ค์ ์ธ๋ฑ์ค๋ก ์ด๋
arr.pop() # ์ฌ๊ท ํธ์ถ์ด ๋๋ ํ ๋ง์ง๋ง ์ซ์๋ฅผ ์ ๊ฑฐ (๋ฐฑํธ๋ํน)
# ์ฌ๊ท ํจ์ ํธ์ถ ์์, ์ฒ์ ์ธ๋ฑ์ค๋ 0
rec(0)
15650๋ฒ ์ ๋ต ์ฝ๋
import sys
input = sys.stdin.readline
# N๊ณผ M์ ์
๋ ฅ๋ฐ๋๋ค. N์ 1๋ถํฐ N๊น์ง์ ์ซ์, M์ ์์ด์ ๊ธธ์ด
N, M = map(int, input().split())
arr = [] # ์์ด์ ์ ์ฅํ ๋ฆฌ์คํธ
def rec(idx, num):
# ํ์ฌ ์์ด์ ๊ธธ์ด๊ฐ M๊ณผ ๊ฐ์ผ๋ฉด ์ถ๋ ฅํ๊ณ ์ข
๋ฃ
if idx == M:
print(*arr) # ๋ฆฌ์คํธ๋ฅผ ์ธํฉํ์ฌ ์ถ๋ ฅ
return
# num+1๋ถํฐ N๊น์ง์ ์ซ์๋ฅผ ์ฐจ๋ก๋๋ก ๊ฒ์ฌ
for i in range(num+1, N+1):
if i not in arr: # ํ์ฌ ์ซ์๊ฐ ์์ด์ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด
arr.append(i) # ์ซ์๋ฅผ ์์ด์ ์ถ๊ฐ
rec(idx+1, i) # ์ฌ๊ท ํธ์ถ๋ก ๋ค์ ์ธ๋ฑ์ค๋ก ์ด๋ํ๊ณ ํ์ฌ ์ซ์๋ฅผ ๋๊ฒจ์ค
arr.pop() # ์ฌ๊ท ํธ์ถ์ด ๋๋ ํ ๋ง์ง๋ง ์ซ์๋ฅผ ์ ๊ฑฐ (๋ฐฑํธ๋ํน)
# ์ฌ๊ท ํจ์ ํธ์ถ ์์, ์ฒ์ ์ธ๋ฑ์ค๋ 0, ์์ ์ซ์๋ 0
rec(0, 0)
4. ์ฝ๋ ์ค๋ช
15649๋ฒ
1. ์ ๋ ฅ๋ฐ๊ธฐ: N๊ณผ M์ ์ ๋ ฅ๋ฐ์ ์์ด์ ๊ธธ์ด์ ์ฌ์ฉํ ์ ์๋ ์ซ์์ ๋ฒ์๋ฅผ ์ค์ ํฉ๋๋ค.
2. ์ฌ๊ท ํจ์ ์ ์: ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ์์ด์ ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ idx๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ต๋๋ค.
3. ๊ธฐ์ ์กฐ๊ฑด: idx๊ฐ M๊ณผ ๊ฐ์ผ๋ฉด ํ์ฌ ์์ด์ ์ถ๋ ฅํฉ๋๋ค.
4. ๋ฐฑํธ๋ํน: 1๋ถํฐ N๊น์ง์ ์ซ์๋ฅผ ๊ฒ์ฌํ์ฌ, ํ์ฌ ์์ด์ ํฌํจ๋์ง ์์ ์ซ์๋ฅผ ์ถ๊ฐํ๊ณ ์ฌ๊ท ํธ์ถํฉ๋๋ค. ํธ์ถ์ด ๋๋๋ฉด ๋ง์ง๋ง ์ซ์๋ฅผ ์ ๊ฑฐํ์ฌ ์ด์ ์ํ๋ก ๋๋๋ฆฝ๋๋ค.
15650๋ฒ
1. ์ ๋ ฅ๋ฐ๊ธฐ: N๊ณผ M์ ์ ๋ ฅ๋ฐ์ ์์ด์ ๊ธธ์ด์ ์ฌ์ฉํ ์ ์๋ ์ซ์์ ๋ฒ์๋ฅผ ์ค์ ํฉ๋๋ค.
2. ์ฌ๊ท ํจ์ ์ ์: ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ์์ด์ ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ idx์ ๋ง์ง๋ง์ผ๋ก ์ฌ์ฉ๋ ์ซ์๋ฅผ ๋ํ๋ด๋ num์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ต๋๋ค.
3. ๊ธฐ์ ์กฐ๊ฑด: idx๊ฐ M๊ณผ ๊ฐ์ผ๋ฉด ํ์ฌ ์์ด์ ์ถ๋ ฅํฉ๋๋ค.
4. ๋ฐฑํธ๋ํน: num+1๋ถํฐ N๊น์ง์ ์ซ์๋ฅผ ๊ฒ์ฌํ์ฌ, ํ์ฌ ์์ด์ ํฌํจ๋์ง ์์ ์ซ์๋ฅผ ์ถ๊ฐํ๊ณ ์ฌ๊ท ํธ์ถํฉ๋๋ค. ํธ์ถ์ด ๋๋๋ฉด ๋ง์ง๋ง ์ซ์๋ฅผ ์ ๊ฑฐํ์ฌ ์ด์ ์ํ๋ก ๋๋๋ฆฝ๋๋ค.
5. Github์ผ๋ก ํ์ธ
15649๋ฒ
15650๋ฒ
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ(๋ฐฑ์ค)_Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ(๋ฐฑ์ค) 2512[์์ฐ] (0) | 2024.06.21 |
---|---|
BOJ(๋ฐฑ์ค) 2309[์ผ๊ณฑ ๋์์ด] (0) | 2024.06.20 |
BOJ(๋ฐฑ์ค) 3020[๊ฐ๋ฅ๋ฒ๋ ] (0) | 2024.06.19 |
BOJ(๋ฐฑ์ค) 11660[๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5] (0) | 2024.06.18 |
BOJ(๋ฐฑ์ค) 2304[์ฐฝ๊ณ ๋ค๊ฐํ] (0) | 2024.06.17 |