코테준비

문제https://www.acmicpc.net/problem/17142  풀이본 문제는 이전에 풀이했던 연구소 문제의 다른 버전이며, 주어지는 수 만큼 바이러스를 활성화 했을 때 모든 공간에 바이러스가 확산되는 시간의 최소값을 구하는 문제다. 해당 문제에서는 조심해야할 포인트가 있다.바이러스가 확산될 때 비활성 바이러스는 넘어갈 수 있다.(개인적으로 햇갈렸던 부분) 활성화할 바이러스의 조합을 정하는 로직 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ..
문제https://www.acmicpc.net/problem/17140  풀이이 문제는 중복된 요소의 갯수를 측정해 이용하는 문제이다.Map객체를 이용해 시간복잡도를 최적화 해주는 로직이 핵심이라 생각한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [r, c, k] = input.shift();const arr = input;let cnt = 0;let temp = Array.from({ length: 10..
문제https://www.acmicpc.net/problem/15685  풀이이 문제를 풀며 햇갈렸던 부분을 정리하겠다. 1. x와 y의 범위가 0부터 100 까지 이므로 생성해야할 2차원 배열을 101 X 101의 크기로 만들어야 한다.2. 드래곤 커브는 끝지점을 기준으로 기존의 모양을 반시계로 돌린 모습이다.그 과정에서 각 지점의 좌표를 구하는 것이 많이 어려웠다.회전되는 새로운 점의 좌표는아래의 식과 같다.const nY = prevX - curX + curY;const nX = -(prevY - curY) + curX; 문제를 풀다보니 "반대인 오른쪽, 반시계방향으로 회전하면 어떤 식이 나올까?" 라는 생각이 들었다.그래서 구해봤다.const nY = prevX - curX + curX; cons..
문제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..
58청춘
'코테준비' 태그의 글 목록 (14 Page)