DS & Algorithm/programmers

    [프로그래머스] 리코쳇 로봇 - 자바스크립트

    [프로그래머스] 리코쳇 로봇 - 자바스크립트

    문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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..

    [프로그래머스] 덧칠하기 - 자바스크립트

    [프로그래머스] 덧칠하기 - 자바스크립트

    문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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

    [프로그래머스] 대충 만든 자판 - 자바스크립트

    [프로그래머스] 대충 만든 자판 - 자바스크립트

    문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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 { ..

    [프로그래머스] 억억단을 외우자 - 자바스크립트

    [프로그래머스] 억억단을 외우자 - 자바스크립트

    문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제 조건을 재해석해야하고, 시간 초과도 신경써야 하는 문제다. 특히 시간 초과를 잘 생각하면서 설계해보자. e의 범위가 500만인데, 각 케이스마다 모두 조회를 해야한다면.. 기계가 힘들어한다. 코드 function solution(e, starts) { const denominators = getAllDenominators(e); const lowestMaxNumArr = getLowestMaxNumArr(denominators, e); return starts.map((s) => lowest..

    [프로그래머스] 숫자 카드 나누기 - 자바스크립트

    [프로그래머스] 숫자 카드 나누기 - 자바스크립트

    문제 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..

    [프로그래머스] 섬 연결하기 - 자바스크립트

    [프로그래머스] 섬 연결하기 - 자바스크립트

    문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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]..