ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
1, 2, 3 ๋ํ๊ธฐ ์๋ฆฌ์ฆ
- 1, 2, 3 ๋ํ๊ธฐ
- 1, 2, 3 ๋ํ๊ธฐ 2
- 1, 2, 3 ๋ํ๊ธฐ 3
- 1, 2, 3 ๋ํ๊ธฐ 4
- 1, 2, 3 ๋ํ๊ธฐ 5
- 1, 2, 3 ๋ํ๊ธฐ 6
- 1, 2, 3 ๋ํ๊ธฐ 7
- 1, 2, 3 ๋ํ๊ธฐ 8
- 1, 2, 3 ๋ํ๊ธฐ 9
๋ฌธ์
๋ฌธ์ ํ์ด
1, 2, 3์ ํ์ฉํ์ฌ N์ ๊ตฌํ ์ ์๋ ๊ฒฝ์ฐ์ ์ ์ค K ๋ฒ์งธ์ ์์์ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ์ ๊ฒฝ์ฐ N์ ํฌ๊ธฐ๊ฐ ํฌ์ง ์๊ธฐ ๋๋ฌธ์ DFS๋ก ๋ฐฑํธ๋ํนํ์ฌ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ค.
- ์ฌ๊ท ํธ์ถ์ ํ๋ฉด์ ๊ตฌํ ์์ ํฉ์ด N๋ณด๋ค ํฌ๋ค๋ฉด, ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ์ค๋จํ๋ค.
- ๋ง์ฝ ๊ตฌํ ์์ ํฉ์ด N์ด ๋์๋ค๋ฉด ์นด์ดํธ ํ๊ณ , K๊ฐ ๋๋ฉด ์์์ ์ถ๋ ฅํ๋ค.
- ์ด๋ DFS์ ๊ฒฝ์ฐ `1 + 1 + 1 + 1`, `1 + 1 + 2`, `1 + 2 + 1`๊ณผ ๊ฐ์ ์์๋ก ํ์์ ์งํํ๊ธฐ์ ๊ฐ๋ฅํ๋ค.
- DFS๋ฅผ ํตํด ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํ์์์๋ ๋ต์ ์ฐพ์ง ๋ชปํ๋ค๋ฉด -1์ ์ถ๋ ฅํ๋ค.
์ฝ๋
from sys import stdin
def dfs(idx, sum_num, check):
global cnt
# n๋ณด๋ค ํฐ ๊ฒฝ์ฐ ํ์ธํ ํ์ ์์.
if sum_num > n:
return
if n == sum_num:
# k๋ฒ์งธ ์๋ฅผ ์ฐพ๊ธฐ ์ํจ
cnt += 1
if cnt == k:
# ์ซ์+์ซ์+์ซ์+๋ก ๊ธฐ๋กํ๋ฏ๋ก, ๋ง์ง๋ง์ ์ ๊ฑฐํ๊ณ ์ถ๋ ฅ.
print(''.join(check)[:-1])
exit(0)
for i in range(1, 4):
check.append(str(i) + '+')
dfs(idx + 1, sum_num + i, check)
check.pop()
if __name__ == '__main__':
cnt = 0
n, k = map(int, stdin.readline().split())
dfs(0, 0, [])
print(-1)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 15990 1, 2, 3 ๋ํ๊ธฐ 5 (0) | 2020.09.29 |
---|---|
๋ฐฑ์ค: 15989 1, 2, 3 ๋ํ๊ธฐ 4 (0) | 2020.09.28 |
๋ฐฑ์ค: 14238 ์ถ๊ทผ ๊ธฐ๋ก (0) | 2020.09.27 |
๋ฐฑ์ค: 11060 ์ ํ ์ ํ (0) | 2020.09.27 |
๋ฐฑ์ค: 16936 ๋3๊ณฑ2 (0) | 2020.09.26 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ