๊ด๋ จ ํ์ด๋ฅผ ๋ดค์๋ ํ์๋ฒ์ผ๋ก ์ ๊ทผํด์ผ ํ๋ ํ๋ค๊ฐ, ์ฃผ์ด์ง ์์ ์ผ์ด์ค๋ก ๋์ ํ ์ ๊ทผํ ์๊ฐ ์์ด์,
dfs๋ก ์ ๊ทผํด์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์์ ๋ํด ๊ฐ์ง๊ณ ์๋ค๊ฐ ์ต๋๊ฐ์ ๋ณด์ฌ์ฃผ๋ ์ ๊ทผ ๋ฐฉ์์ ํํ๋ค.
N = int(input())
results = list()
# history ๋ณ์๋ debug ์ฉ๋
def dfs(start, current, history):
if (start >= len(meetingList)):
results.append(current)
return
# ์ค๋ ์กํ์๋ ๋ฏธํ
์ ์งํํ ๊ฒฝ์ฐ
next = start + meetingList[start][0]
if (next <= len(meetingList)):
dfs(next, current + meetingList[start][1], history + str(start))
# ์ค๋ ์กํ์๋ ๋ฏธํ
์ ์งํํ์ง ์์ ๊ฒฝ์ฐ
for i in range(start + 1, next):
dfs(i, current, history)
meetingList = list()
for _ in range(N):
meetingList.append(list(map(int, input().split())))
dfs(0, 0, '')
results.sort()
print(results[-1])
+) ๋ค๋ฅธ ํ์ด๋ก๋ ๋์ dp๋ก ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ ๊ฐ๋ค.
https://zu-techlog.tistory.com/42
๋ฐ์ํ
'๐ค ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
baekjoon. 15486 ํด์ฌ 2 [Gold V][python] (0) | 2023.07.06 |
---|---|
โก๏ธ baekjoon. 1489 ๋๊ฒฐ [Gold I][python] (0) | 2023.06.29 |
baekjoon. 1071 ์ํธ [Platinum V][python] (0) | 2023.06.22 |
baekjoon. 1083 ์ํธ [Gold V][python] (0) | 2023.06.15 |
์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ . ์๋ฃ๊ตฌ์กฐ์์์ ํ๊ท ~ ์ต์ ์๊ฐ ๋ณต์ก๋ (0) | 2023.06.10 |