문제https://www.acmicpc.net/problem/2606 풀이해당 문제는 DFS와 BFS 풀이 모두 가능한 문제이다. 간단한 문제이기 때문에 DFS와 BFS를 다시 연습하기 위해 풀이했다. BFS 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n');const n = +input.shift();const linked = +input.shift();const arr = input.map(e => e.split(' ').map(Number));const map = {};const ..
코딩 테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이 문제의 경우 각 로봇이 움직이는 시간별로 위치를 객체에 담아 중복되는 경우를 탐지해야한다. 코드function solution(points, routes) { let answer = 0; const map = new Map(); const pos = []; points.forEach(([y, x], i) => { map.set(i + 1, [y, x]); }); routes.forEach((e) => { le..
문제https://www.acmicpc.net/problem/2292 풀이벌집의 방 수가 6의 배수대로 증가하는 모습을 보며 2 번째 방의 시작인 2와 끝인 7의 변화를 지정해 주며, 입력되는 N이 해당 범위 내에 속하는 지를 확인하며 시뮬레이션 한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n');let n = +input.shift();if (n === 1) console.log(1);else { let cnt = 1; let [min, max] = [2, 7]; while ..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이필자는 해당 문제를 단순 구현으로 풀이하려 했다. DP 알고리즘을 이용해 이전 문자열 + '0'.repeat(5 ** (i - 1)) + 이전 문자열 로 문자열을 구해 풀려했지만, 특정 케이스에서는 컴파일 에러가 발생했다. 그래서 수학적인 접근을 시도했다. 우선 문자열에서 규칙을 찾아보자면, 1의 개수는 4 * n개 이다. 그리고 0은 5개로 자른 문자열에서 항상 2번 인덱스에 위치한다. 이와같은 특징을 이용해 1과 0을 구분할 수 있는 check 함수를 제작해보자.check 함수에서는 크게 3가지 경우를 처리한다.1. 입력된 인덱스 값이 5보다..
문제https://www.acmicpc.net/problem/2003 풀이투포인터의 기본 문제이며, 주어지는 수열에서 연속된 수들의 합이 M이 되면 카운트를 올리는 문제이다. 이 문제에서 while 문을 이용해 반복해주는 부분이 있는데, 이 while 문의 조건에 원래는 lp 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n');const [n, m] = input.shift().split(' ').map(Number);const arr = input[0].split(' ').map(Num..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이해당 문제는 문제를 해석하는데 어려움이 있었다... 일단 프로세스를 문제에서 설명해주기 때문에 프로세스를 따르며 구현하면 큰 어려움은 없다. 코드function solution(p) { const check = (st) => { const stack = []; for (let i = 0; i { let res = ''; let cnt = 0; if (w.length === 0) return ''; for (let i = 0; i