시뮬레이션

문제https://www.acmicpc.net/problem/20006 풀이이번 문제는 class를 이용해 풀이해 봤다.딱 보고 대기방을 클래스로 하면 정렬이나 입장과 같은 동작을 메서드로 구현해 조금 더 가독성 좋은 코드를 만들 수 있을것 같았다. 각 대기방을 클래스로 구현해두고 입장 가능 여부, 입장과 같은 동작을 메서드로 구현했다. 이번 문제를 풀며 실수했던 것은 문자열을 sort 메서드를 이용해 정렬할 때는 숫자를 정렬할때 처럼 a - b가 아니라 서로 비교연산자를 이용해야한다는 것이다.sortName() { this.nameList.sort((a, b) => { if (a[1] b[1]) return 1; });} 코드const input = require("fs") .readFil..
문제https://www.acmicpc.net/problem/16918   풀이이 문제를 처음 봤을 때는 4가지 경우가 반복되는 문제라고 생각해 구현을 해봤다.하지만, 통과가 되지 않았으므로 매 시간마다 변화를 주는 방식으로 풀이했다. 문제 풀이는 흠... 그냥 간단한 BFS 문제이다. 4방향의 상태를 체크하며 폭탄이 폭발한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' '));const [r, c, n] = input.shift().map(Num..
문제https://level.goorm.io/exam/195694/%EB%B0%9C%EC%A0%84%EA%B8%B0/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이해당 문제는 그래프 탐색 문제이며 각 집이 연결되어있는지 확인하는 문제이다. 어떻게 보면 DFS 로 풀면 될거 같지만, DFS로 풀이를 진행하면 각 노드에서 재귀적으로 4방향씩 호출되어 시간초과 오류를 만날 수도 있다.... 코드const readline = require('readline');let rl = readline.createInterface({ input: process.stdin, output: process.stdout,});let n = null;l..
문제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/19236  풀이하...이 문제 진짜 오래 풀었다....(5시간 정도?) 이 문제는 경우의 수를 따져야 하기에 DFS 문제로 인식을 했다. 물론 맞는 선택이였다. 하지만, 로직 동작이 너무 까다로웠다. 물고기의 방향을 검증하는데 새롭게 정해진 방향을 저장해 다음 depth로 전달해야한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const dir = [[-1..
문제https://www.acmicpc.net/problem/17822 코드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();let target = input.splice(0, n);const moves = input.splice(0, t);const dir = [[-1, 0], [1, 0], [0, -1], [0, 1]];for (let i = 0; i Array(m)...
58청춘
'시뮬레이션' 태그의 글 목록