일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 다이나믹 프로그래밍
- 프로그래머스스쿨
- 문자열
- 스택
- 파이썬
- 그래프이론
- 브루트포스 알고리즘
- 알고리즘
- 자바스크립트
- 프로그래머스
- 정렬
- lv2
- level2
- 백준
- programmers
- 너비 우선 탐색
- DP
- BASIC
- 그래프 이론
- 그리디 알고리즘
- 그래프 탐색
- web
- 웹 프론트엔드
- DFS
- 자료구조
- 딕셔너리
- 구현
- CSS
- JavaScript
- BFS
Archives
- Today
- Total
DevLog:-)
[프로그래머스][Javascript]피로도 본문
반응형
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
완전탐색을 필요로 하는 문제이다.
그중 dfs를 이용해 풀 수 있다.
코드
//경로탐색#네트워크#조합만들기🌰
//dfs🌰#bfs
//visited
//재귀함수
function solution(k, dungeons) {
let d = dungeons;
let visited = Array(d.length).fill(0)
let answer = 0;
function dfs(k,result){
answer = answer <result ? result: answer;
for(let i in d){
if(k>=d[i][0] && visited[i] ==0 ){
visited[i] =1;
dfs(k-d[i][1],result+1);
visited[i] =0;
}
}
return answer;
}
return dfs(k, 0);
}
✅checkpoint!
let arr = Array(length).fill(0) | length길이의 0으로 채워진 배열 선언하 |
max = max <new_value ? new_value : max | 가장 큰 값 찾기 |
💡아이디어 요약
dfs를 이용한 완전탐색 | 조합을 구하고 서로 비교하는 문제이다. -> dfs visited배열을 이용해 중복 check되지 않도록 한다. 재귀함수를 이용해 dfs를 구현한다. |
여러 객체들이 연결되어 있는 자료구조에서 특정 개체를 찾기 위한 알고리즘 |
|
대표적 문제 유형 |
1.경로탐색 유형(최단거리, 시간) 2.네트워크 유형(연결) 3.조합유형(모든 조합 만들기 후 비교) |
dfs | 재귀함수 |
bfs | Queue, LinkedList |
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Javascript]소수찾기 (0) | 2023.07.29 |
---|---|
[프로그래머스][Javascript]기능개발 (0) | 2023.07.29 |
뒤에 있는 큰 수 찾기 (0) | 2023.07.27 |
[프로그래머스][Javascript]더 맵게 (0) | 2023.07.27 |
[프로그래머스][Javascript]할인행사 (0) | 2023.07.26 |