코딩 테스트/백준

문제https://www.acmicpc.net/problem/16918   풀이이 문제를 처음 봤을 때는 4가지 경우가 반복되는 문제라고 생각해 구현을 해봤다.하지만, 통과가 되지 않았으므로 매 시간마다 변화를 주는 방식으로 풀이했다. 문제 풀이는 흠... 그냥 간단한 BFS 문제이다. 4방향의 상태를 체크하며 폭탄이 폭발한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' '));const [r, c, n] = input.shift().map(Num..
문제https://www.acmicpc.net/problem/11053  풀이이 문제는 LIS 알고리즘과 DP 알고리즘을 이용한 문제이다. DP 알고리즘을 이용해 지금까지 증가한 연속된 부분 수열의 개수를 저장해 사용한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [n] = input.shift();const arr = input.shift();const temp = Array.from({ length: n..
문제https://www.acmicpc.net/problem/20055  코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [n, k] = input.shift();const belt = input.shift();const robots = Array.from({ length: 2 * n }, () => false);let stage = 0;const check = () => { const val = belt.red..
문제https://www.acmicpc.net/problem/16967 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [h, w, x, y] = input.shift();const bArr = input;const answer = Array.from({ length: h }, () => Array(w));for (let i = 0; i acc1 + cur1.reduce((acc2, cur2) => acc2 + ..
문제https://www.acmicpc.net/problem/19236  풀이하...이 문제 진짜 오래 풀었다....(5시간 정도?) 이 문제는 경우의 수를 따져야 하기에 DFS 문제로 인식을 했다. 물론 맞는 선택이였다. 하지만, 로직 동작이 너무 까다로웠다. 물고기의 방향을 검증하는데 새롭게 정해진 방향을 저장해 다음 depth로 전달해야한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const dir = [[-1..
문제https://www.acmicpc.net/problem/17822 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [n, m, t] = input.shift();let target = input.splice(0, n);const moves = input.splice(0, t);const dir = [[-1, 0], [1, 0], [0, -1], [0, 1]];for (let i = 0; i Array(m)...
58청춘
'코딩 테스트/백준' 카테고리의 글 목록 (3 Page)