js
Programmers / Level 2 / 양궁대회 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 분석이 문제는 고려할 것이 많기 때문에, 문제를 잘 읽어야 헷갈리지 않고 풀 수 있다.더 많이 맞춘쪽이 해당 점수를 가져간다.여러발 맞춰도 맞춘만큼 가져가는 것이 아닌, 해당 점수 한 번만 가져간다.똑같이 맞췄다면 어피치가 해당 점수를 가져간다.'최대 점수'가 아닌, '최대 점수 차이'를 가지는 결과를 구해야 한다.'최대 점수 차이'를 가지는 방법이 여러개라면, 낮은 점수를 많이 맞춘 방법을 반환한다.위에 보라색으로 된 것을 놓치거나, 헷갈릴 수 ..

Programmers / Level 2 / 전력망을 둘로 나누기 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이/** * 인접리스트를 초기화하는 함수이다. * * @param {number[][]} wires 전선 정보 * @returns {Map>} 인접리스트 */function initAdjList(wires) { const adjList = new Map(); wires.forEach(([tower1, tower2]) => { if (adjList.has(tower1)) { adjList.get(tower1).add(tower2); ..

Programmers / Level 3 / 경주로 건설 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제분석직선도로에서는 100의 비용이 들고,코너에서는 500의 비용이 든다.처음에 헷갈려서 틀렸었는데, '코너를 만드는데 드는 비용'이 500이므로,코너를 만들고 앞으로 한 칸 나아가려면 총 600의 비용이 든다. 또한, 어느 방향에서 왔는지에 따라 같은 칸이라도 비용이 다르게 들 수 있다.따라서 일반적인 방문처리를 하는 bfs로는 풀이가 불가능하다. 풀이const EMPTY = 0;const WALL = 1;const STRAIGHT_COST = 10..
Programmers / Level 3 / 네트워크 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이function solution(n, computers) { const visited = Array.from({ length: n }, () => false); let network = 0; for (let i = 0; i 문제는 간단히 말하면 이어져있는 그룹이 몇개인지 세는 문제이다.Level3 이라기엔 상당히 쉬운 문제이다. dfs로 현재의 컴퓨터와 이어져 있는 컴퓨터는 모두 방문처리를 한다.따라서 dfs를 마치면 하나의 네트워크가 형성되..
Programmers / Level 3 / 표 편집 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 개요이번 시간에는 Programmers의 Level 3,'표 편집' 문제에 대해 알아보겠습니다.먼저, 문제에 대해 간략히 설명드리고,제한사항을 살펴본 뒤,문제를 해결해보면서 마무리하겠습니다. 문제문제에는 총 네 종류의 명령이 주어질 수 있습니다. 첫 번째, 'U' 명령을 수행하면, X칸 위에 있는 행을 선택합니다.두 번째, 'D' 명령을 수행하면, X칸 아래에 있는 행을 선택합니다.세 번째, 'C' 명령을 수행하면, 현재 선택된 행을 삭제한 후, 바로 ..
백준 / 투 포인터 / 22862번 / 가장 긴 짝수 연속한 부분 수열 (large) / JS
문제 간단설명길이가 N인 수열 S가 있다. 수열 S는 1이상 정수로 이루어져 있는데,최대 K개의 정수를 삭제할 수 있다. 최대 K개 삭제한 수열에서,짝수로 이루어져 있는 연속한 부분 수열 중,가장 긴 길이를 구하면 된다. 제한 사항1 1 1 성공 코드const fs = require('fs');const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt';// const filePath = process.platform === 'linux' ? '/dev/stdin' : 'BOJ/input.txt';const input = fs .readFileSync(filePath) .toString() .trim() .split(..