programmers | Lv2. ํ”ผ๋กœ๋„ [Python]

yeonkยท2022๋…„ 3์›” 13์ผ
0

algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
61/88
post-thumbnail

๐Ÿ’ก Python 3






๐Ÿ”— ๋ฌธ์ œ

ํ”ผ๋กœ๋„ [Link]






๐Ÿ’ป ์ฝ”๋“œ

def solution(k, dungeons):
    from itertools import permutations
    result = 0
    per = permutations(dungeons, len(dungeons))
    for p in per:
        nk = k
        count = 0
        for i in p:
            if i[0] <= nk:
                nk -= i[1]
                count += 1
        result = max(result, count)
    return result






๐Ÿ’ฅ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ์ฝ”๋“œ

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

0๊ฐœ์˜ ๋Œ“๊ธ€