문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이번 문제는 원형 탐색과 순열을 이용해 풀이를 진행했다. 중요한 것은 로직의 구성인거 같다.몇 명을 선택할 것인가?정해진 인원을 누구로 채울것인가?어디 부터 시작할 것인가?각 인원이 어디까지 커버할 수 있는가?위의 네 가지 로직을 구현한다면 문제없이 문제 풀이가 가능할 것이다.코드function solution(n, weak, dist) { const getPermutation = (arr, n) => { if (n === 1) return arr.map((e) => [e]); let res = []; for (let i = 0;..
코딩 테스트/프로그래머스 코딩 테스트 연습
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이번 문제는 초반에 접근접을 잘 찾은것같다.첫 풀이에서는 DFS를 이용해 B가 최대로 많은량의 물건을 가져가 A가 최소의 값을 갖도록 했다.하지만, 방문 여부를 기록하는 과정에서 문제가 있었고, 이전의 코드에서는 시간 초과가 발생했다. 그래서 A와 B의 점수?를 DFS 함수에 전달하여 함수 내부에서 Set 자료형에 현재의 인덱스와 각각의 점수를 기록했다.이는 해당 물건의 인덱스에서 A가 가져간 경우와 B가 가져간 경우를 따로 계산해야 하기 때문이다. 코드function solution(info, n, m) { let answer = Infinit..

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이 문제의 키 포인트는 두가지로 생각한다. 첫 번째, 외각에 있는 요소 체크 후 제거. 이는 테두리에 있는 요소를 확인하는 것은 이 요소가 지게차로 제거할 수 있는지 확인하는 것이다. 나는 -1이라는 값을 이용해 BFS 알고리즘으로 4 방향으로 확인하며 탐색을 진행했다. 두 번째, 제거된 블럭으로 인해 태두리에 위치하게 되는 요소의 계산이다. 예를 들어보자.위의 사진과 같이 물건들이 있다고 가정하자. 명령어는 ["BB", "A"]가 주어졌을때, "BB" 명령어가 먼저 시행되며 해당 물건들에서 B 요소들은 모두 테두리와 상관없이 모두 제거된다. 제거..
문제https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 코드function solution(players, m, k) { let answer = 0; let max = m - 1; let que = []; for (let i = 0; i
문제https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이 문제의 경우 2차원 배열을 이용해 한정된 횟수 안에 특정 지점까지의 도착 여부를 측정하는 문제이다. 이번 문제는 비슷한 유형의 문제들에서 추가된 조건들이 존재한다.한정된 이동 회수최단 이동문자 기준 사전순 빠른 탈출 명령어1 번의 경우는 문제에서 주어지는 k 값을 이용해 탐색 회수를 한정할 수 있다.2 번과 3 번의 경우는 문자 기준으로 이동 방향의 정렬(down, left, right, up 순서)을 이용해 탐색 방향의 우선순위를..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이 문제는 누적합 알고리즘을 이용한 문제이다. 처음에는 어떤 알고리즘을 적용해야할지 의문이 들었다. 처음에는 DP 알고리즘을 이용해 각 시간을 초 단위로 구분해 시청자를 구했다. 그렇지만 이 문제는 시청자 수를 구하는 문제가 아닌 가장 많은 시청 시간을 갖는 시간대를 구하는 문제이다. 결국 누적합 알고리즘을 적용해 기존에 구해둔 시청자수를 이용해 누적 시청 시간을 구했다. 이 문제와 같이 자료의 수는 많아 2중 반복을 할 수 없으며, 이전까지의 결과값이 필요하고 범위가 지정되어 있는 문제의 경우는 누적합 알고리즘을 이용한 접근법 설계를 학습할 수 ..