코딩 테스트/백준

문제https://www.acmicpc.net/problem/15684  풀이해당 문제는 dfs를 이용해 풀이했으며 문제의 조건을 구현하는데 조금 어려움이 있었다. 검증하고 있는 칸에 사다리를 놓을 수 있는지 검증하는 로직에서 이중으로 쓸대없이 검증을 진행했어서 시간초과 에러가 발생했었다. 코드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, h] = input.shift();const ladder = in..
문제https://www.acmicpc.net/problem/17144  풀이이 문제는 배열 돌리기 문제들을 풀었다면 쉽게 풀이가 가능한 문제다. 나는 먼지가 확산되는 동작을 구현함에 있어 큐에 먼지들의 위치와 값을 담은 다음 차례대로 확상해 나갔다. 코드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();const map = input;const filterPos = [];..
문제https://www.acmicpc.net/problem/16235  풀이이 문제는 구현 난이도는 그저 그랬으나 시간 복잡도를 신경써야 하는 문제였다. 기존 코드에서는 죽은 나무들을 담는 큐를 만들어 계산했지만, 이런 방식으로 풀이하면 시간 초과가 발생하므로 기존 나무를 담는 배열에 각 나무의 죽음 여부를 나타내는 값을 하나 추가하고 이를 활용해 풀이했다.추가적으로 내가 실수하며 풀이 시간이 40분 정도 증가했는데, 문제에서 입력으로 들어오는 X, Y 개념을 잘못 이해했다. 나는 좌표평면에서 세로를 Y, 가로를 X로 생각했다. 하지만 문제에서는 상단에서 떨어진 정도를 X, 맨 좌측에서 떨어진 정도를 Y로 표기했다. 이를 반대로 사용해 각 땅에 줘야하는 양분을 잘못 전달했었다. 코드const input..
문제https://www.acmicpc.net/problem/16236  풀이이 문제에서 설계해야 하는 로직을 생각해 봤다.먹을 수 있는 물고기의 개수먹을 수 있는 물고기와 아기 상어 사이의 거리의 계산다수가 있다면 가장 인접, 최상단, 최좌측 순으로 우선순위 갖음현재 크기 만큼의 횟수로 물고기를 먹으면 크기가 커짐(먹은 횟수는 초기화)끝내는 로직: 더이상 먹을 수 있는 경우가 없는 경우상하좌우가 막힌 경우아기 상어보다 작은 물고기가 없는 경우 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\..
문제https://www.acmicpc.net/problem/14891  풀이문제는 시뮬레이션 구현 문제이다. 문제 풀이는 돌아가는 톱니바퀴의 좌/우에 있는 톱니바퀴들의 회전후 동작을 구현하는데 중점을 두었다. 회전 동작을 담당하는 함수에서 좌/우에 있는 톱니바퀴들을 회전할 수 있는지 확인하며 회전시키는데, 이때 톱니바퀴는 서로 반대 방향으로 회전하므로 다음 톱니바퀴가 어느 방향으로 회전했는지를 변수에 기록해 그 다음 톱니바퀴가 회전할 방향을 계산할 수 있도록 프로그래밍 했다. 이 문제에서 가장 어려웠던 부분은 로직 구현이 아니였다......오타 때문에 30분 이상 사용한거같다.....length배열의 길이를 측정할 때 length가 아닌 lenght라 작성한 것이다... 오타를 조심하자...........
문제https://www.acmicpc.net/problem/3190  풀이뱀의 이동 매커니즘을 큐를 이용해 뱀의 이동 경로를 저장하고 이를 이용해 뱀의 길이 및 뱀의 위치를 계산한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' '));const N = +input.shift()[0];const apple = +input.shift()[0];const applePos = input.splice(0, apple).map(e => e.map(Numbe..
58청춘
'코딩 테스트/백준' 카테고리의 글 목록 (5 Page)