~๋ชฉ์ฐจ~
๋ฌธ์
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
- ์ด์งํธ๋ฆฌ๋ฅผ ์๊ฐํ๋ฉด์ ๋ชจ๋ ์ฌ๋ฃ๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ์ ๋ฃ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋ ์ ํ์
- ํ์ฌ๊น์ง ๊ณ์ฐํ ๊ฐ์ด ์ต๋ ์นผ๋ก๋ฆฌ๋ฅผ ๋์ด๊ฐ๋ฉด ํด๋น ๊ฒฝ์ฐ์ ๋ํด์ ๋์ด์ ํ์ํ์ง ์์๋ ๋จ
- BFS๋ก๋ ๊ตฌํํ ์ ์์ง๋ง ๊ฐ์ง์น๊ธฐ๋ฅผ ํ ์ ์์ผ๋ฏ๋ก BFS๋ณด๋ค DFS๊ฐ ๋ ์ด์์ ์ด๋ค.
์์ฑ ์ฝ๋
def dfs(vertex, sat, cal):
global result
if cal <= L: # L ์ฃผ์(1000 ์๋)
result = sat if sat > result else result # ๋ง์กฑ๋๊ฐ ํฌ๋ค๋ฉด ๊ฐฑ์
if vertex < N: # ๋ชจ๋ ์ฌ๋ฃ ์ฌ์ฉ ์ ํ์ผ๋ฉด
dfs(vertex+1, sat + igr[vertex][0], cal + igr[vertex][1]) # ํด๋น ์ฌ๋ฃ ๋ฃ์
dfs(vertex+1, sat, cal) # ํด๋น ์ฌ๋ฃ ์ ๋ฃ์
for test in range(1, int(input())+1):
result = 0
N, L = list(map(int, input().split())) # ์ฌ๋ฃ ๊ฐ์, ์นผ๋ก๋ฆฌ ์ ํ
igr = [list(map(int, input().split())) for _ in range(N)] # ์ฌ๋ฃ ๋ณ ๋ง์กฑ๋, ์นผ๋ก๋ฆฌ
dfs(0, 0, 0)
print("#{} {}".format(test, result))
๋์์ด ๋์ จ๋ค๋ฉด ์ข์์ ๋๋ฌ์ฃผ์ธ์๐
REFERENCE
https://mungto.tistory.com/170
'๐๋ฌธ์ ํ์ด > ๐งฉSWExpertAcademy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWEA] ํ์ด์ฌ 2817. ๋ถ๋ถ ์์ด์ ํฉ | BFS (0) | 2023.04.24 |
---|---|
[SWEA] ํ์ด์ฌ 2806. N-Queen | ๋ฐฑํธ๋ํน(Backtracking) (0) | 2023.04.21 |
[SWEA] ํ์ด์ฌ 1209. Sum (0) | 2023.04.20 |
[SWEA] ํ์ด์ฌ 2805. ๋์๋ฌผ ์ํํ๊ธฐ (0) | 2023.04.19 |
[SWEA] 1928. Base64 Decoder | ์์คํค ์ฝ๋ | ๋นํธ ์ฐ์ฐ (0) | 2023.04.03 |