문제https://level.goorm.io/exam/43061/%EA%B3%84%EC%88%98%EA%B8%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이해당 문제는 반복문을 이용해 수를 1씩 더해주는 로직을 진행하며 각 자리별 최대 값을 넘는지 확인하는 문제이다. 코드// Run by Node.jsconst readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout});const input = [];let t = null;r..
브루트포스
문제https://www.acmicpc.net/problem/17779 풀이구현 문제이며, BFS 알고리즘을 이용해 5지역의 영역을 이동 및 확장해가며 답을 도출하는 풀이이다. 코드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 map = input.slice();const total = map.reduce((acc, cur) => { return acc + cur.r..
문제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/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/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 문제 풀이 방법 이 문제는 기본적으로 완전탐색 알고리즘의 일종인 브루트포스 문제이다. 각 기준 높이에 맞는 시간과 최대 높이를 측정하여 정답을 도출한다. 블럭의 최대 높이는 256까지 이므로 반복문을 이용해 0부터 256까지의 기준 높이를 설정하며 각 블럭에서의 기준 높이까지 맞추기위해 필요한 제거 횟수와 채움 횟수를 측정, 제거한 블럭과 기존에 갖고있던 블럭의 수가 넣어야 하는 블럭..