목록js (166)
N
https://programmers.co.kr/learn/courses/30/lessons/92335# 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 주어진 n을 k로 나눠 나머지 값을 transformed 배열에 저장한다. 해당 배열을 reverse() 함수로 뒤집은 다음, join("")을 통해 한 문자열로 통합하고, 다시 split("0") 함수로 0을 구분자로 하여 결과를 만든다. 이 결과를 forEach문을 통해 curr이 공백이 아니고, isPr..
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 문자열과 map을 활용. 변수 설명 answer : 정답 배열 length : id_list의 길이 count : 유저가 신고를 받은 횟수 배열 reportedUser : 유저의 중복 신고 횟수를 방지하기 위한 map idIndex : id_list에 있는 id의 인덱스 번호 저장 map saveReportId : 각 유저가 신고한 유저를 저장하는 배열 ..
https://programmers.co.kr/learn/courses/30/lessons/92343 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr 완전 탐색. 우선 0번째 노드는 항상 양이 있기 때문에 answer = 1로 시작한다. length는 info의 길이로, 노드의 개수가 된다. graph는 각 노드에서 자식 노드가 있으면 자식 노드의 번호를 배열 ..
https://leetcode.com/problems/path-with-minimum-effort/ Path With Minimum Effort - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 우선순위큐로를 이용한 풀이. MinHeap으로 우선순위 큐를 구현. BFS 방식과 비슷하게 PriorityQueue에 방문할 좌표와 minimum effort를 넣으면 된다. pq에 push하면 알아서 minHeap으로 정렬해주기 때문에 방문할 좌표와 방문 여부를 확인해..
https://leetcode.com/problems/minimum-path-sum/ Minimum Path Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com DP 알고리즘 이용. 주어진 grid의 크기는 m x n 이므로 각 변수에 length를 저장한다. dp 테이블은 grid와 마찬가지로 m x n의 크기로 선언하여 0으로 초기화한다. 시작점인 [0, 0]에서 끝점 [m - 1, n - 1]로 향하기 때문에 dp[0][0]은 grid[0][0]으로 ..
https://leetcode.com/problems/network-delay-time/ Network Delay Time - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 다익스트라 알고리즘 활용. 우선 주어진 times 배열을 그래프로 나타내기 위해 n + 1 크기의 graph 2차원 배열을 선언. 또한, 노드 간 걸리는 시간을 dist 배열에 저장하기 위해 n + 1 크기의 1차원 배열을 선언하여 Infinity로 초기화한다. times를 순회하면서 노드를..
https://leetcode.com/problems/snapshot-array/ Snapshot Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Map을 이용한 문제 풀이. 생성자가 호출될 때 전체 스냅샷이 저장될 snapshots(Map), 현재 스냅샷을 나타내는 array(Map), 현재 스냅 Id를 나타내는 snapId를 선언한다. set(index, val) 함수. 현재 스냅샷에 key: index, value: val 로 저장한다. sna..
https://programmers.co.kr/learn/courses/30/lessons/12971?language=javascript 코딩테스트 연습 - 스티커 모으기(2) N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 programmers.co.kr DP를 이용한 문제 풀이. 하나의 스티커를 땠을 때, 양 옆의 스티커를 사용하지 못하기 때문에 DP 테이블을 2개 사용해야 한다. 왜냐하면 아래처럼 두 가지 경우 중 합이 큰 값을 골라야 하기 때문이다. 1) 첫번째 스티커부터 땠을 때(가장 마지막에 있는 스티커를 사용하지 못함) 2) 두번째 스티커부터 땠을 때..