코딩 테스트/백준

문제https://www.acmicpc.net/problem/15683 풀이이 문제는 완전 탐색으로 풀이하는 구현 문제이다. 감시 카메라는 정해진 방향으로만 감시가 가능하며 감시 구역이 겹치는 것은 가능하지만, 중복된 영역에서 개수 증가는 한개만 가능하다. 또한 카메라 칸은 감시가 불가능 하지만, 그 다음 칸으로의 감시는 가능하다. 이러한 조건만 잘 지키면 구현에 큰 어려움은 없었다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Numb..
문제https://www.acmicpc.net/problem/1972 풀이이 문제는 주어진 각 문자열을 순회하며 현위치의 문자와 정해진 거리만큼 떨어져있는 문자를 합친 문자열의 중복 확인한 문제이다. 중복 확인은 Set 객체를 이용했으며, Set 객체 사용 연습을 위해 사용했다. 코드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();let map = input.slice();let an..
문제https://www.acmicpc.net/problem/12100 풀이해당 문제는 DFS를 이용한 완전탐색을 구현해 시뮬레이션 문제를 풀었다.DFS를 이용한 이유는 각 깊이별로 4방향으로 이동할 모든 경우의 수를 계산해야 하기 때문이다. 이 문제에서 어려웠던 부분은 한 방향으로 이동하면 블럭이 합쳐지는 로직이였다.블럭은 이동 방향의 끝 부분부터 합쳐지며 합쳐지면 이동해 합쳐진 블럭은 없어지게끔 구현했다. 코드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/14503 풀이이 문제는 간단한 구현 및 시뮬레이션 문제이기에 풀이라고 할 것이 딱히 없고 조건만 잘 구현하면 된다. 1) 로봇의 현 위치에서 청소할 수 있는 칸에 있다면 청소한다.2) 동서남북 4칸중 청소할 수 있는 칸이 있다면 반시계 방향으로 돌면서 확인 한뒤 가장 먼저 발견한 칸으로 이동3) 만약 2번에서 청소할 칸이 없다고 판단되면 후진. 후진이 안되는 경우(뒤에 벽이 있다면) 로봇 청소기의 동작을 멈춘다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString(..
문제https://www.acmicpc.net/problem/14888 풀이해당 문제는 완전탐색 문제이며, 필자는 DFS와 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()[0];const toolNum =..
문제https://www.acmicpc.net/problem/14499 풀이이 문제는 단순 구현 및 시뮬레이션 문제이다. 다만 조건이 까다로웠다. 주사위가 명령대로 굴러갔을 때의 지도 칸에 있는 숫자에 따라 주사위의 숫자가 변하는지 지도 칸의 숫자가 변하는지 조건을 걸어두는 것을 알아야한다. 코드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, y, x, cNum] = input.shift();let comm..
58청춘
'코딩 테스트/백준' 카테고리의 글 목록