연습장/프로그래머스 문제풀이
![[프로그래머스 Level 2] 주차 요금 계산 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbtat1a%2FbtrL9ZaNhzo%2FAAAAAAAAAAAAAAAAAAAAAHuis7rJ12sgGlHmeCnyLtd1kIbkFkACWnS7rjLOXqgj%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DT2e1gTKMEuzJTm10mpQ0ZBL%252Fg9g%253D)
[프로그래머스 Level 2] 주차 요금 계산 - JavaScript
🔗 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 풀이 function solution(fees, records) { const [BASIC_TIME, BASIC_FEE, UNIT_TIME, UNIT_FEE] = fees; const AUTO_OUT_TIME = 60 * 24 - 1; const parkInfo = {}; records.forEach(str => { const strings = str.split(' '); co..
![[프로그래머스 Level 2] 타겟 넘버 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb8T650%2FbtrGn9DmKlp%2FAAAAAAAAAAAAAAAAAAAAAKih0gld0pnmmpDZz4cGB3r1DJS0r4C7Gu7pICQ_qnVA%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Du258Po9w%252BLnEGrTzTOvu%252FO1%252FAuE%253D)
[프로그래머스 Level 2] 타겟 넘버 - JavaScript
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr ✏️ 풀이 function solution(numbers, target) { const dfs = (index, sum) => { if (index === numbers.length) { if (sum === target) { return 1; } return 0; } const plus = dfs(index + 1, sum..
![[프로그래머스 Level 2] k진수에서 소수 개수 구하기 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Feva0Bl%2FbtrECv7OyaT%2FAAAAAAAAAAAAAAAAAAAAAPklutZO5BmOeCHlgClXpbJ_-2i-6J3Yfo12lWPzKXe6%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DZ%252BuKCUc%252FHR3pmQRdyAzKNabLi44%253D)
[프로그래머스 Level 2] k진수에서 소수 개수 구하기 - JavaScript
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr ✏️ 풀이 function solution(n, k) { const numbers = n.toString(k).split('0').map(Number); return numbers.reduce((acc, num) => { if (num
![[프로그래머스 Level 2] n진수 게임 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FVq0Kl%2FbtrEvmcbHLn%2FAAAAAAAAAAAAAAAAAAAAAI5lOHwQh6mIw8955Gh3-jZ-TaMnfjW0WBGmApDeexjg%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DzBZvbZiJ6d%252FwYKdTWNhoyJg%252B6aI%253D)
[프로그래머스 Level 2] n진수 게임 - JavaScript
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr ✏️ 풀이 function solution(n, t, m, p) { const max = m * (t - 1) + p; const answer = []; let numbers = ''; let value = 0; while (numbers.length < max) { numbers += (value++).toString(n); } ..
![[프로그래머스 Level 2] 파일명 정렬 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FWhuFx%2FbtrEuyxBp8t%2FAAAAAAAAAAAAAAAAAAAAAERgnOXd_SQBbqN4ORnnmw5uf7hjNTZ4vL-665pbl7fu%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Duj6VGRJSeTN6OOvOKbDr6sBg51A%253D)
[프로그래머스 Level 2] 파일명 정렬 - JavaScript
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr ✏️ 풀이 function solution(files) { return files.sort((a, b) => { const [, aHead, aNum] = a.match(/(\D+)(\d{1,5})(.*)/); const [, bHead, bNum] = b.match(/(\D+)(\d{1,5})(.*)/); const aLowerHead..
![[프로그래머스 Level 2] 압축 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FccE74d%2FbtrEt20gucz%2FAAAAAAAAAAAAAAAAAAAAAOhBLk7S56d4-xVTMTRT00fOVNncBg_bmSo1-Uad9Dg-%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DvEh9qsM7n45gmDpJRyZLlqFzfsk%253D)
[프로그래머스 Level 2] 압축 - JavaScript
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr ✏️ 풀이 function solution(msg) { const answer = []; const dictionary = [...Array(26)] .reduce((acc, _, i) => { acc[String.fromCharCode(65 + i)] = i + 1; return acc; }, {}); let dictLength = 26; let i = 0; while..
![[프로그래머스 Level 2] 방금그곡 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbcmKrq%2FbtrEtw1rY6A%2FAAAAAAAAAAAAAAAAAAAAAGsMoUEOouxn1xtAsvQYdAacibof0SfhIacAZA4h1m5a%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DitTAAJLftAY7rWynPozlVJabiv0%253D)
[프로그래머스 Level 2] 방금그곡 - JavaScript
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr ✏️ 풀이 function solution(m, musicinfos) { const normalize = (melody) => { return melody.replace(/([A-Z])#/g, (_, group) => group.toLowerCase()); }; const getMin = (time) => { const [hour, m..
![[프로그래머스 Level 3] 여행경로 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FPzmPB%2FbtrEuPyUD6V%2FAAAAAAAAAAAAAAAAAAAAAPJaq2TZ-355cKFME8tw82anMWQ_kTjKo7NA2ZjNnNIT%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DYTlDIqm%252FQREpaWoYgzOIEFilGBQ%253D)
[프로그래머스 Level 3] 여행경로 - JavaScript
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr ✏️ 풀이 function solution(tickets) { const graph = {}; const count = {}; tickets.forEach(([from, to]) => { if (graph[from]) { graph[from].push(to); } else { graph[from] = [to]; }..
![[프로그래머스 Level 2] 프렌즈4블록 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FeHQh6z%2FbtrEo8FdoMB%2FAAAAAAAAAAAAAAAAAAAAAFGfRBOaXZJ26WRAhwBIV3gtiv8nRStSCGUOd7NZ6Yvl%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D%252BlQwTjnxhQBcXn9r0PVUsXN50vA%253D)
[프로그래머스 Level 2] 프렌즈4블록 - JavaScript
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr ✏️ 풀이 function solution(m, n, board) { board = board.map(row => [...row]); const offset = [[0, 0], [0, 1], [1, 0], [1, 1]]; let count = 0; let flag = true; while (flag) { flag = fals..
![[프로그래머스 Level 3] 네트워크 - JavaScript](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbQs6tc%2FbtrEn86MEeC%2FAAAAAAAAAAAAAAAAAAAAAOb0lDskmfficUX1KkzCGJ3OpO4bLZOGXx5LFK7rnDBW%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DzdUBwpJatDivO60G2dRl6Y0VwDU%253D)
[프로그래머스 Level 3] 네트워크 - JavaScript
🔗 문제 링크 ✏️ 풀이 function solution(n, computers) { const visited = Array(n).fill(false); const dfs = (start) => { const stack = [start]; while (stack.length) { const index = stack.pop(); if (!visited[index]) { visited[index] = true; computers[index].forEach((v, i) => { if (i !== index && v) { stack.push(i); } }); } } } let count = 0; computers.forEach((v, i) => { if (!visited[i]) { dfs(i); count++;..