알고리즘 테스트 ⏲/프로그래머스 [프로그래머스] 무인도 여행 풀이 / JavaScript - 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(maps) { const result = [] maps = maps.map((m) => m.split("")) const dfs = (dx, dy) => { if (dx < 0 || dy < 0 || dx >= maps.length || dy >= maps[0].length || maps[dx][dy] === "X") return 0 const now = parseInt(maps[dx][dy]) maps[dx][dy] = "X" return now + dfs(dx - 1, dy) + dfs(dx + 1, dy) + dfs(dx, dy - 1) + dfs(dx, dy + 1) } for (let x = 0; x < maps.length; x += 1) { for (let y = 0; y < maps[x].length; y += 1) { if (maps[x][y] !== "X") result.push(dfs(x, y)) } } return result.length ? result.sort((a, b) => a - b) : [-1] } 구현 로직 (DFS) DFS로 간단하게 해결할 수 있습니다. 1. maps 배열 요소 순회 2. 현재 위치가 X가 아니라면 현재 위치를 방문 처리("X")하고 시작점으로 상하좌우 DFS 수행 3. 수행 결과(영역 내 X가 아닌 모든 수들의 합)를 결과 배열 result에 담기 4. 정렬 결과 반환 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기yjglab 저작자표시 Contents 당신이 좋아할만한 콘텐츠 [프로그래머스] 배달 풀이 / JavaScript 2023.04.08 [프로그래머스] 마법의 엘리베이터 풀이 / JavaScript 2023.04.07 [KAKAO RECRUITMENT] 후보키 풀이 / JavaScript 2023.04.06 [KAKAO RECRUITMENT] 괄호 변환 풀이 / JavaScript 2023.04.05 댓글 0 + 이전 댓글 더보기