Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- ์ฝ๋ฉํ ์คํธ
- ํฌ๋กค๋ง
- ํ๋ก ํธ์๋
- react
- ์ฝ๋ฉ
- HTML
- ์๊ณ ๋ฆฌ์ฆ
- node.js
- fe
- javascript
- ๋ ธ๋ง๋์ฝ๋
- ํ์ด์ฌ
- heapq
- ๊ตญ๋น์ง์
- Python
- ๋ฐฑ์ค
- ๊ฐ๋ฐ
- ๊ทธ๋ฆฌ๋
- ํ๋ก๊ทธ๋๋จธ์ค
- mongodb
- ๋๋ฆผ์ฝ๋ฉ
- ๋ชจ๊ฐ์ฝ
- Til
- CSS
- ํ ์ดํ๋ก์ ํธ
- JS
- error
- KDT
- ํ๋ก์ ํธ
- ์ฝ๋ฉ์ ํ
Archives
- Today
- Total
๐ฑ โ ๐ณ
[ํ๋ก๊ทธ๋๋จธ์ค] ํผ๋ก๋ - python ๋ณธ๋ฌธ
728x90
๋ฌธ์ ์ ํ : ์์ ํ์
level 2
์ฝ๋
์์ด ํ์ด
from itertools import permutations
def solution(k, dungeons):
all_dungeons = []
for i in permutations(dungeons,len(dungeons)):
all_dungeons.append(list(i))
possible = []
i = 0
while i < len(all_dungeons):
stamina = k
count = 0
for j in all_dungeons[i]:
if stamina >= j[0]:
stamina = stamina - j[1]
count += 1
elif stamina < j[0]:
break
possible.append(count)
i += 1
answer = max(possible)
return answer
dfs() ํ์ด
answer = 0
N = 0
visited = []
def dfs(k, cnt, dungeons):
global answer
if cnt > answer:
answer = cnt
for j in range(N):
if k >= dungeons[j][0] and not visited[j]:
visited[j] = 1
dfs(k - dungeons[j][1], cnt + 1, dungeons)
visited[j] = 0
def solution(k, dungeons):
global N, visited
N = len(dungeons)
visited = [0] * N
dfs(k, 0, dungeons)
return answer

์์ค ์ง์ง ใ ใ
728x90
'Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์จ์ด ์๋ ์ซ์์ ๋ง์ - python (0) | 2023.09.15 |
---|---|
[Baekjoon] 11718. ๊ทธ๋๋ก ์ถ๋ ฅํ๊ธฐ - python (0) | 2023.09.14 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋์คํฌ ์ปจํธ๋กค๋ฌ - python (0) | 2023.08.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ก์ธ์ค - python (0) | 2023.08.30 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ํ๋ฒํธ ๋ชฉ๋ก - python (0) | 2023.08.29 |