Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- JavaScript
- 13023번 ABCDE
- Redux
- Java
- level0
- 우선순위 큐 자바스크립트
- 백준
- 부녀회장이 될 테야
- dfs
- 2275번
- 기지국 설치 js
- 2638번 치즈
- 1389번 케빈 베이컨의 6단계 법칙
- 백준 1068
- 힙 자바스크립트
- 백준 1068번 트리
- 1303번
- level1
- 알고리즘 수업-깊이 우선 탐색1
- ssh
- 1937번 욕심쟁이 판다
- 24480번
- 자바스크립트
- 백준 13023번
- 백준 2638번
- 알고리즘
- 프로그래머스
- React
- 리덕스
- 기지국 설치 자바스크립트
Archives
- Today
- Total
코딩왕랄프👊🏻
[백준] 2210번 숫자판 점프 본문
반응형
SMALL
문제
5×5 크기의 숫자판이 있다. 각각의 칸에는 숫자(digit, 0부터 9까지)가 적혀 있다. 이 숫자판의 임의의 위치에서 시작해서, 인접해 있는 네 방향으로 다섯 번 이동하면서, 각 칸에 적혀있는 숫자를 차례로 붙이면 6자리의 수가 된다. 이동을 할 때에는 한 번 거쳤던 칸을 다시 거쳐도 되며, 0으로 시작하는 000123과 같은 수로 만들 수 있다.
숫자판이 주어졌을 때, 만들 수 있는 서로 다른 여섯 자리의 수들의 개수를 구하는 프로그램을 작성하시오.
입력
다섯 개의 줄에 다섯 개의 정수로 숫자판이 주어진다.
출력
첫째 줄에 만들 수 있는 수들의 개수를 출력한다.
const _input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
function solution(input) {
const graph = input.map((item) => item.split(" "));
let answer = [];
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
DFS(i, j, "");
}
}
return answer.length;
function DFS(y, x, num) {
if (num.length === 6) {
if (!answer.includes(num)) answer.push(num);
return;
} else {
if (y - 1 >= 0) DFS(y - 1, x, num + graph[y][x]);
if (y + 1 <= 4) DFS(y + 1, x, num + graph[y][x]);
if (x - 1 >= 0) DFS(y, x - 1, num + graph[y][x]);
if (x + 1 <= 4) DFS(y, x + 1, num + graph[y][x]);
}
}
}
console.log(solution(_input));
반응형
LIST
'백준' 카테고리의 다른 글
[백준] 2573번 빙산 (0) | 2023.07.28 |
---|---|
[백준] 1707번 이분 그래프 (0) | 2023.07.28 |
[백준] 24480번 알고리즘 수업 - 깊이 우선 탐색 2 (0) | 2023.07.28 |
[백준] 24479번 알고리즘 수업 - 깊이 우선 탐색1 (0) | 2023.07.28 |
[백준] 3184번 양 (0) | 2023.07.26 |