DFS 4

[프로그래머스] 땅따먹기 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제제한사항 행의 개수 N : 100,000 이하의 자연수열의 개수는 4개이고, 땅(land)은 2차원 배열로 주어집니다.점수 : 100 이하의 자연수입출력 예landanswer [[1,2,3,5],[5,6,7,8],[4,3,2,1]] 16 입출력 예 설명입출력 예 #1문제의 예시와 같습니다.2. 정답 풀이풀이 전략연산 횟수를 줄이기 위해 DFS(깊이 우선 탐색) 대신 이전 상태를 이용하는 DP(동적 프로그래밍) 방식 사용function solution(land) { // 첫 번째 행은 이미 정해진 값이므로, 두 번째 행(인덱스 1)부터 순회 ..

[프로그래머스] 게임 맵 최단 거리 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제제한사항 maps는 n x m 크기의 게임 맵의 상태가 들어있는 2차원 배열로, n과 m은 각각 1 이상 100 이하의 자연수입니다. n과 m은 서로 같을 수도, 다를 수도 있지만, n과 m이 모두 1인 경우는 입력으로 주어지지 않습니다. maps는 0과 1로만 이루어져 있으며, 0은 벽이 있는 자리, 1은 벽이 없는 자리를 나타냅니다. 처음에 캐릭터는 게임 맵의 좌측 상단인 (1, 1) 위치에 있으며, 상대방 진영은 게임 맵의 우측 하단인 (n, m) 위치에 있습니다.입출력 예 maps answer [[1,0,1,1,1],[1,0,1,0,1],..

[프로그래머스] 타겟 넘버 (LV2 - JavaScript)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문제 제한사항 입출력 예입출력 예 설명 2. 정답 풀이풀이 전략모든 연산자의 케이스를 담는 연산자 배열을 만든다.연산자 배열을 순회하며 연산을 수행한다.연산의 결과가 target과 같으면 answer를 증가시킨다.function solution(numbers, target) { let answer = 0; const len = numbers.length; for (let i = 0; i + 리턴 operators.push((i & (1 { num = operator === '+' ? num + ..

[프로그래머스] 피로도 (LV2 - JavaScript)

1. 문제 제한사항 입출력 예입출력 예 설명 2. 정답 풀이풀이 전략깊이 우선 탐색 (Depth-First Search) 사용던전을 탐험했는지 확인하기 위한 hash 배열 사용재귀 함수 호출을 통해 던전 입장 순서별로 탐험 가능한 최대 던전 수를 계산Math.max 메서드로 재귀 함수 결과 중 최대 값을 returnfunction solution(k, dungeons) { const hash = Array.from({length: dungeons.length}, () => 0); let answer = 0; // 깊이 우선탐색(Depth-First-Search) const dfs = (k, cnt) => { for(let i=0; i= dungeons[i][0])..