DS & Algorithm/programmers
![[프로그래머스] 리코쳇 로봇 - 자바스크립트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchHVyP%2Fbtr4vowzaZ1%2FbPZALfggJ28uCYKWMirpv0%2Fimg.png)
[프로그래머스] 리코쳇 로봇 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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%2Fdn%2FHvm6v%2Fbtr3ezSXnWa%2FQ5KQDNEnKALgqAF7O5WsO0%2Fimg.png)
[프로그래머스] 덧칠하기 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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%2Fdn%2Fb8fn3F%2Fbtr3effXyUf%2FQKf4S3ppfIc5ncgkhBqBlk%2Fimg.png)
[프로그래머스] 대충 만든 자판 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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%2Fdn%2Fb5AW3c%2FbtrR9cOghoe%2F9qbIy5PTFrqor7J7pBdp80%2Fimg.webp)
[프로그래머스] 억억단을 외우자 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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%2Fdn%2FYj2XA%2FbtrRR8TfiYR%2FKULqTKo7OFMRs9yExCtrWK%2Fimg.webp)
[프로그래머스] 숫자 카드 나누기 - 자바스크립트
문제 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%2Fdn%2FAmDYp%2FbtrLWmvXnex%2FjwkLVT0bk3is5nSgjt8mlk%2Fimg.webp)
[프로그래머스] 섬 연결하기 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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]..