Level 3

    Programmers / Level 3 / 단속카메라 / JS

    https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제분석이 문제는 전형적인 구간 스케줄링 문제이다.여러 구간이 주어졌을 때, 모든 구간을 커버하는 최소한의 점을 찾는 것과 같다. 직관적인 접근법차량들의 경로를 구간으로 생각한다.겹치는 구간들은 하나의 카메라로 처리가 가능하다.겹치지 않는 구간들은 각각 별도의 카메라가 필요하다. 풀이핵심 아이디어: 진출 기점을 기준으로 정렬한 후, greedy하게 카메라 위치를 선택한다.function solution(routes) { routes.sort((a, b..

    Programmers / Level 3 / 정수 삼각형 / JS

    https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이function solution(triangle) { const height = triangle.length; const dp = Array.from({ length: height }, (_, i) => Array(i + 1)); dp[0][0] = triangle[0][0]; for (let i = 1; i 문제 자체는 간단하다.주어진 triangle 배열과 똑같은 형태의 배열을 선언해주고 dp로 풀었다.dp로 이전 행의 좌, 우를 비교해서..

    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' 명령을 수행하면, 현재 선택된 행을 삭제한 후, 바로 ..

    Programers / Level 3 / 양과 늑대 / JS

    문제 간단설명"양과 늑대" 문제는 트리 구조에서 양과 늑대를 관리하며 최대한 많은 양을 모으는 문제입니다. 제한 사항2 info의 원소는 0 또는 1입니다.info[i]는 i번 노드에 있는 양 또는 늑대를 나타냅니다.0은 양, 1은 늑대를 의미합니다.info[0]의 값은 항상 0입니다.즉, 0번 노드(루트 노드)에는 항상 양이 있습니다.edges의 세로(행)의 길이 = info의 길이 - 1edges의 가로(열)의 길이 = 2edges의 각 행은 [부모 노드 번호, 자식 노드 번호] 형태로,서로 연결된 두 노드를 나타냅니다.동일한 간선에 대한 정보가 중복해서 주어지지 않습니다.항상 하나의 이진 트리 형태로 입력이 주어지며, 잘못도니 데이터가 주어지는 경우는 없습니다.0번 노드는 항상 루트 노드입니다. 성..