728x90
난이도 : Lv. 2
풀이일 : 2412242
https://school.programmers.co.kr/learn/courses/30/lessons/87946?language=python3
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
풀이 코드
function solution(k, dungeons) {
let answer = -1
let visited = new Array(dungeons.length).fill(false)
function DFS(hp, depth) {
if (answer < depth) {
answer = depth
}
for (let i = 0; i < dungeons.length; i++) {
if (!visited[i] && hp >= dungeons[i][0]) {
visited[i] = true
DFS(hp - dungeons[i][1], depth + 1)
visited[i] = false
}
}
}
DFS(k, 0)
return answer
}
- DFS로 탐색 진행
- 현재 depth가 answer보다 크다면, answer 재할당
- 던전목록 길이만큼 반복하며 방문할 수 있는 던전이라면 방문 후 DFS 재귀 호출
제출 결과
느낀점
- Array로 배열을 선언하지 않아 처음에는 NaN으로 되어 있어서 틀린 답이 나왔다.
- 프로젝트는 죄다 자바스크립트로 했는데 알고리즘은 또 다른 느낌이다.
- 그리고 제출 결과 보면 자스는 항상 좀 느린 것 같다.
'알고리즘 > Lv. 2' 카테고리의 다른 글
프로그래머스 42747 H-Index 파이썬 풀이 (1) | 2024.12.26 |
---|---|
프로그래머스 12939 최댓값과 최솟값 자바스크립트 풀이 (0) | 2024.12.25 |
프로그래머스 87946 피로도 자바 풀이 (1) | 2024.12.24 |
프로그래머스 87946 피로도 파이썬 풀이 (0) | 2024.12.23 |
프로그래머스 42626 더 맵게 파이썬 풀이 (1) | 2024.12.20 |