문제https://www.acmicpc.net/problem/11053 풀이이 문제는 LIS 알고리즘과 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();const arr = input.shift();const temp = Array.from({ length: n..
코딩 테스트
문제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://level.goorm.io/exam/49060/%EA%B0%9C%EB%AF%B8-%EC%A7%91%ED%95%A9%EC%9D%98-%EC%A7%80%EB%A6%84/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이투 포인터 문제이며, 슬라이딩 윈도우로 풀어볼까 생각했지만 입력되는 배열의 길이가 상당히 길어 모든 길이의 경우를 판단하기 힘들것 이라 생각해 투 포인터 알고리즘을 이용해 풀이했다. 코드에서 sol 함수가 메인 함수이며, 투포인터 알고리즘 답게 배열을 정렬한 뒤 lp와 rp를 0부터 시작해서 개미들간의 거리가 D 이하일 때 개미의 수가 가장 많은 수를 찾는 함수이다. 거리가 가깝다면 rp를 1 증가시..
문제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..