DS & Algorithm/programmers

    [프로그래머스] 행렬 테두리 회전하기 - 자바스크립트

    [프로그래머스] 행렬 테두리 회전하기 - 자바스크립트

    문제 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 코드 function solution(rows, columns, queries) { const map = Array.from({ length: rows }, (_, i) => { return Array.from({ length: columns }, (__, j) => i * columns + j + 1); }); const answer = []; queries.forEach(([sx, sy, tx, ty]) => { [sx, sy, tx,..

    [프로그래머스] 프렌즈4블록 - 자바스크립트

    [프로그래머스] 프렌즈4블록 - 자바스크립트

    문제 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 코드 function solution(m, n, board) { function checkBlock(x, y) { const block = board[x][y]; if (x + 2 > m || y + 2 > n || !block) return false; for (let i = x; i < x + 2; i++) { for (let j = y; j < y + 2; j++) { if (block === board[i][j]) contin..

    [프로그래머스] 방금그곡 - 자바스크립트

    문제 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 코드 function solution(m, musicinfos) { const arr = musicinfos.map((mi) => { const [start, end, title, code] = mi.split(","); const hour = end.slice(0, 2) - start.slice(0, 2); const minute = end.slice(3) - start.slice(3); const runtime = 60 * hour + mi..

    [프로그래머스] 쿼드 압축 후 개수 세기 - 자바스크립트

    [프로그래머스] 쿼드 압축 후 개수 세기 - 자바스크립트

    문제 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 코드 function solution(arr) { if(arr.length === 1) return arr[0][0] ? [0,1] : [1,0]; const answer = [0,0]; const len = arr.length; const half = len / 2; ..

    [프로그래머스] 괄호 회전하기 - 자바스크립트

    [프로그래머스] 괄호 회전하기 - 자바스크립트

    문제 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 코드 function solution(s) { if (s.length % 2 === 1) return 0; const sLen = s.length; let answer = 0; for (let i = 0; i < sLen; i++) { let str = s.slice(i) + s.slice(0, i); const stack = []; let flag = 1; for (let n of str) { if (n === "(" || n === "{" || n === "[") stack.push(n); else { const bracket = stack.pop(); if (n === ")" && bracket === "(") continue;..

    [프로그래머스] 압축 - 자바스크립트

    문제 코딩테스트 연습 - [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 dict = [0]; for (let i = 0; i < 26; i++) { dict.push(String.fromCharCode(i + 65)); } let idx = 0; let w = msg[idx]; while (true) { let c = msg[++idx]; if (c === undefined) { answer.push(dict.indexOf(w)); return answer..