백준

문제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/17837  풀이이 문제는 조금 난이도 있는 구현인거 같다. 우선 각 칸마다 색상과 쌓여있는 말들을 저장할 방법에 대해 고민했다. 서칭을 하던 중 칸 하나의 요소에 객체로 color와 stack을 넣어줘 관리하는 방법을 찾았다. 이 문제를 풀며 어려운 점이 있었는데, 파란칸(2)과 보드의 영역을 나가는 동작의 경우 반대 방향으로 움직이는 동작의 구현이였다. 마지막까지 반대 방향으로 움직이는 로직에서 실수를 하며 시간을 소비했다.... 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') ..
문제https://www.acmicpc.net/problem/17143  풀이이번 문제는 단순 구현 문제이지만 까다로운 로직이 필요한 구현 문제이다. 상어를 낚는 로직은 2차원 배열에서 해당 열에 가장 위에 있는 상어만 추출해주면된다.const casting = (curPos) => { for (let i = 0; i  모든 상어들이 움직이는 로직을 담당하는 함수를 만든다.이 함수에서 새로운 배치를 갖는 배열을 저장하도록 새로운 배열을 만든다. 이렇게 만들어진 배열에 각 상어의 새로운 위치를 담아준다.담을때 같은 위치에 상어가 중복되어 있을 때 무게가 가장 큰 상어만 남겨두도록 설계한다.const move = () => { const temp = Array.from({ length: 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(' ..
58청춘
'백준' 태그의 글 목록 (3 Page)