DS & Algorithm/programmers
![[프로그래머스] 리코쳇 로봇 - 자바스크립트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FchHVyP%2Fbtr4vowzaZ1%2FAAAAAAAAAAAAAAAAAAAAAAJpG_n1atzDKtxUXXl9Bcmyt48hsYmVASg35zvwGyzh%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DGfE3YvEAnFurO8NGycUjFSWs93Q%253D)
[프로그래머스] 리코쳇 로봇 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(board) { const row = board.length; const col = board[0].length; const [dx, dy] = [ [-1, 0, 1, 0], [0, 1, 0, -1], ]; const NON_DIR = -10; const movedMap = {}; const BLOCK = { empty: '.', start: 'R', obstacle: 'D', goal: 'G', }; function getStartPos(board) { for (l..
![[프로그래머스] 덧칠하기 - 자바스크립트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FHvm6v%2Fbtr3ezSXnWa%2FAAAAAAAAAAAAAAAAAAAAAAQrIGxRF7g9ok9iyw0o2lv6sYSiUDxMf7b2tG4xLH69%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dpof1Egq0YAr0C658I%252BOCstmqzYE%253D)
[프로그래머스] 덧칠하기 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(n, m, section) { var answer = 0; const rollerLen = m - 1; let base = section[section.length - 1]; let cur; answer += 1; while (section.length) { cur = section.pop(); if (base - cur
![[프로그래머스] 대충 만든 자판 - 자바스크립트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb8fn3F%2Fbtr3effXyUf%2FAAAAAAAAAAAAAAAAAAAAAMT_kZt6nqNyslLGUYVeeqXoY-qm0AqmgMrD1hlzlU1Z%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dz%252Bjiplplw7hh5%252BktjlTB2KmizZs%253D)
[프로그래머스] 대충 만든 자판 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오랜만에 프로그래머스에 들어갔는데, 새로운 문제들이 추가되었더라. 레벨1의 난이도 치고는 생각할 부분이 조금 있어 보여서, 포스팅하게 되었다. 코드 function solution(keymap, targets) { var answer = []; const keyPos = {}; keymap.forEach((km) => { [...km].forEach((alphabet, pos) => { if (!(alphabet in keyPos)) { keyPos[alphabet] = pos + 1; } else { ..
![[프로그래머스] 억억단을 외우자 - 자바스크립트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb5AW3c%2FbtrR9cOghoe%2FAAAAAAAAAAAAAAAAAAAAAN8norMmTQ3a-jsdYbjPmFFXXKzETajjaKEhhABFoOn3%2Fimg.webp%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DQ5bMo2LbXJBikjlXXmh3H2FGfmU%253D)
[프로그래머스] 억억단을 외우자 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제 조건을 재해석해야하고, 시간 초과도 신경써야 하는 문제다. 특히 시간 초과를 잘 생각하면서 설계해보자. e의 범위가 500만인데, 각 케이스마다 모두 조회를 해야한다면.. 기계가 힘들어한다. 코드 function solution(e, starts) { const denominators = getAllDenominators(e); const lowestMaxNumArr = getLowestMaxNumArr(denominators, e); return starts.map((s) => lowest..
![[프로그래머스] 숫자 카드 나누기 - 자바스크립트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FYj2XA%2FbtrRR8TfiYR%2FAAAAAAAAAAAAAAAAAAAAAMV8BuCN7fMCXcMZMDMfGqhOzeygcdSbVaFzhjduYoQ9%2Fimg.webp%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DWvug9XdlTlE%252BJtL7hanWdyZ8k5o%253D)
[프로그래머스] 숫자 카드 나누기 - 자바스크립트
문제 https://school.programmers.co.kr/learn/courses/30/lessons/135807 코딩테스트 대비 겸 오랜만에 프로그래머스에 들어갔는데, 새로운 문제가 나와서 정리하게 되었다. 코드 function solution(arrayA, arrayB) { const cd1 = getCd(...arrayA.slice(0, 2)); const cd2 = getCd(...arrayB.slice(0, 2)); const allCdOfArrA = getAllCd(cd1, arrayA); const allCdOfArrB = getAllCd(cd2, arrayB); const deDuplicatedAllCd = deDuplicate(allCdOfArrA, allCdOfArrB); ret..
![[프로그래머스] 섬 연결하기 - 자바스크립트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FAmDYp%2FbtrLWmvXnex%2FAAAAAAAAAAAAAAAAAAAAAMhDCM5mAUs5LfZnQ5Z_FMu7FQMP2OEG12vtPtGEiprU%2Fimg.webp%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DIWIUgFpOcJikGPTKvSuSnYCl3fI%253D)
[프로그래머스] 섬 연결하기 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 섬과 섬을 잇는 비용이 주어지고, 모든 섬끼리 통행이 가능한 최소의 비용을 구하는 문제다. 코드 function solution(n, costs) { let answer = 0; const length = costs.length; const parent = Array.from({ length }, (_, i) => i); costs.sort((a, b) => a[2] - b[2]); for (let i = 0; i < length; i++) { const [from, to, cost] = costs[i]..