본문 바로가기

개발/알고리즘3

Javascript 2차원 배열 선언, 초기화 하기 javascript로 알고리즘 문제를 풀다 보면 2차원 배열을 사용해야 하는경우가 종종 있는데 javascript로 2차원 배열을 선언하고 초기화 하는 3가지 방법을 알아보겠습니다. 1. for문 사용 가장 쉽게 생각나는 for문을 이용하는 방법입니다. function getArray1(r, c, value) { const result = new Array(r); for (let i = 0; i < r; i++) { result[i] = new Array(c).fill(value); } return result; } 2. new Array, fill, map 사용 array의 생성자, array 메서드 fill과 map을 이용하는 방법입니다. function getArray2(r, c, value) { .. 2022. 10. 6.
[백준 2096] 내려가기- Java 문제 링크 : https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 풀이 다이나믹 프로그래밍으로 구현하였다. map[r][c] : (r, c)의 값 max[r][c] : (r, c)를 선택했을 때 max값 min[r][c] : (r, c)를 선택했을 때 min값 ex) max[r][1] = max(max[r-1][0], max[r-1][1], max[r-2][1]) + map[r][1] import java.util.*; import java.io.*; publi.. 2021. 6. 15.
[백준 1525] 퍼즐- Java 문제 링크 : https://www.acmicpc.net/problem/1525 1525번: 퍼즐 세 줄에 걸쳐서 표에 채워져 있는 아홉 개의 수가 주어진다. 한 줄에 세 개의 수가 주어지며, 빈 칸은 0으로 나타낸다. www.acmicpc.net 풀이 BFS를 사용한 완전탐색 방법으로 구현하였다. 현재의 퍼즐모양, 빈 칸의 위치, 이동 횟수를 저장하기 위해 Info 클래스를 만들었다. 탐색을 하다가 이전에 나왔던 퍼즐모양은 다시 만들 필요가 없기 때문에 방문 체크를 해야한다. 방문 체크를 위해 Map 자료구조를 사용했고 key값으로는 퍼즐을 Integer로 바꾼 것을 사용했다. 1 0 3 4 2 5 7 8 6 -> 687524301 = 1 * 10^0 + 0 * 10^1 + 3 * 10^2 + 4 * .. 2021. 5. 17.