전체 글
개인 기록용 웹 사이트
-
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(relation) { const getCombinations = (arr, num) => { // 조합 구하기 const combs = []; if (num === 1) return arr.map(v => [v]); arr.forEach((fixed, index, origin) => { const rest = origin.slice(index + 1); const combinations = getCombinations(rest, num - 1)..
[KAKAO RECRUITMENT] 후보키 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(relation) { const getCombinations = (arr, num) => { // 조합 구하기 const combs = []; if (num === 1) return arr.map(v => [v]); arr.forEach((fixed, index, origin) => { const rest = origin.slice(index + 1); const combinations = getCombinations(rest, num - 1)..
2023.04.06 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(p) { if (!p) return "" let [u, v] = ["", ""] let [a, b] = [0, 0] for (let i = 0; i < p.length; i += 1) { p[i] === `(` ? ++a : ++b u += p[i] if (a === b) { v = p.slice(i + 1, p.length) break } } if (u[u.length - 1] === `)`) return u + solution(v) else..
[KAKAO RECRUITMENT] 괄호 변환 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(p) { if (!p) return "" let [u, v] = ["", ""] let [a, b] = [0, 0] for (let i = 0; i < p.length; i += 1) { p[i] === `(` ? ++a : ++b u += p[i] if (a === b) { v = p.slice(i + 1, p.length) break } } if (u[u.length - 1] === `)`) return u + solution(v) else..
2023.04.05 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(topping) { let result = 0 let [lCnt, rCnt] = [1, 0] let [lArr, rArr] = [Array(topping.length).fill(0), Array(topping.length).fill(0)] // 초기 값 세팅 lArr[topping[0]] += 1 for (let i = 1; i < topping.length; i += 1) { if (!rArr[topping[i]]) rCnt += 1 rArr..
[프로그래머스] 롤케이크 자르기 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(topping) { let result = 0 let [lCnt, rCnt] = [1, 0] let [lArr, rArr] = [Array(topping.length).fill(0), Array(topping.length).fill(0)] // 초기 값 세팅 lArr[topping[0]] += 1 for (let i = 1; i < topping.length; i += 1) { if (!rArr[topping[i]]) rCnt += 1 rArr..
2023.04.03 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(prs, location) { let now = 0 prs[location] = prs[location].toString() while (prs.length) { const p = prs.shift() if (p < Math.max(...prs)) prs.push(p) else { if (typeof p === "string") return ++now ++now } } } 구현 로직 (Queue) 1. 요청한 문서만 어떤 것인지를 구분하기 위해..
[프로그래머스] 프린터 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(prs, location) { let now = 0 prs[location] = prs[location].toString() while (prs.length) { const p = prs.shift() if (p < Math.max(...prs)) prs.push(p) else { if (typeof p === "string") return ++now ++now } } } 구현 로직 (Queue) 1. 요청한 문서만 어떤 것인지를 구분하기 위해..
2023.04.02 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(numbers, target) { let result = 0 const dfs = (idx, accr) => { if (idx === numbers.length) return accr === target ? ++result : 1 dfs(idx + 1, accr + numbers[idx]) dfs(idx + 1, accr - numbers[idx]) } return dfs(0, 0) || result } 구현 로직 (DFS) 1. 재귀형 DFS..
[프로그래머스] 타겟 넘버 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(numbers, target) { let result = 0 const dfs = (idx, accr) => { if (idx === numbers.length) return accr === target ? ++result : 1 dfs(idx + 1, accr + numbers[idx]) dfs(idx + 1, accr - numbers[idx]) } return dfs(0, 0) || result } 구현 로직 (DFS) 1. 재귀형 DFS..
2023.04.02 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 실패) function solution(people, limit) { people = people.sort() let result = 0 let [s, e] = [0, people.length - 1] while (s
[프로그래머스] 구명보트 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 실패) function solution(people, limit) { people = people.sort() let result = 0 let [s, e] = [0, people.length - 1] while (s
2023.04.01 -
문제 정보 (2018 KAKAO BLIND RECRUITMENT [3차] 방금그곡) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(m, musicinfos) { // #이 들어있는 멜로디는 소문자로 모두 변경 const replaceSharp = (str) => str.replaceAll("A#", "a").replaceAll("G#", "g").replaceAll("F#", "f").replaceAll("D#", "d").replaceAll("C#", "c") const result = ..
[KAKAO RECRUITMENT] 방금그곡 풀이 / JavaScript문제 정보 (2018 KAKAO BLIND RECRUITMENT [3차] 방금그곡) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(m, musicinfos) { // #이 들어있는 멜로디는 소문자로 모두 변경 const replaceSharp = (str) => str.replaceAll("A#", "a").replaceAll("G#", "g").replaceAll("F#", "f").replaceAll("D#", "d").replaceAll("C#", "c") const result = ..
2023.03.26 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(m, n, board) { board = board.map(v => v.split("")) while (1) { const willRemove = [] // 제거할 좌표 모음 for (let i = 0; i < m - 1; i += 1) { for (let j = 0; j < n - 1; j += 1) { if (board[i][j] && // 빈칸이 아니면 2x2 블록 확인하여 좌표를 제거 리스트에 푸시 board[i][j] === board..
[KAKAO RECRUITMENT] 프렌즈4 블록 풀이프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(m, n, board) { board = board.map(v => v.split("")) while (1) { const willRemove = [] // 제거할 좌표 모음 for (let i = 0; i < m - 1; i += 1) { for (let j = 0; j < n - 1; j += 1) { if (board[i][j] && // 빈칸이 아니면 2x2 블록 확인하여 좌표를 제거 리스트에 푸시 board[i][j] === board..
2023.03.22 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 타임 오버) function solution(n) { const arr = Array(n).fill() for (let i = 0; i < n; i += 1) { arr[i] = (Array(i + 1).fill(-1)) } let idx = 1 let [cx, cy] = [-1, 0] // 시작점 (current x, current y) while (arr.flat().includes(-1)) { while (cx + 1 < n && arr[cx + 1][cy] === -1) { ..
[프로그래머스] 삼각 달팽이 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 타임 오버) function solution(n) { const arr = Array(n).fill() for (let i = 0; i < n; i += 1) { arr[i] = (Array(i + 1).fill(-1)) } let idx = 1 let [cx, cy] = [-1, 0] // 시작점 (current x, current y) while (arr.flat().includes(-1)) { while (cx + 1 < n && arr[cx + 1][cy] === -1) { ..
2023.03.21 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 타임 오버) function getSum(q) { return q.reduce((acc, curr) => acc + curr, 0); } function solution(q1, q2) { let dest = parseInt((getSum(q1) + getSum(q2)) / 2); let tried = 0; while (true) { let a = getSum(q1); let b = getSum(q2); if (a === dest) { break; } else if (a < b) { ..
[KAKAO INTERNSHIP] 두 큐 합 같게 만들기 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 타임 오버) function getSum(q) { return q.reduce((acc, curr) => acc + curr, 0); } function solution(q1, q2) { let dest = parseInt((getSum(q1) + getSum(q2)) / 2); let tried = 0; while (true) { let a = getSum(q1); let b = getSum(q2); if (a === dest) { break; } else if (a < b) { ..
2023.03.17 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 1개 케이스 실패) function solution(numbers) { return numbers.map(v => v.toString()).sort((p, c) => p + c > c + p ? -1 : 1).join("") } 11번 케이스에서 실패가 나왔습니다. 원인을 찾지 못하다가 케이스 중 0으로 이루어진 numbers에서 "000..."으로 나와 문제가 발생하더군요. 기댓값이 "0"인걸로 보입니다. 문제의 제한 사항에 0이 있었는데도 못보고 계속 다른 케이스만 생각하다가 시..
[프로그래머스] 가장 큰 수 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 1개 케이스 실패) function solution(numbers) { return numbers.map(v => v.toString()).sort((p, c) => p + c > c + p ? -1 : 1).join("") } 11번 케이스에서 실패가 나왔습니다. 원인을 찾지 못하다가 케이스 중 0으로 이루어진 numbers에서 "000..."으로 나와 문제가 발생하더군요. 기댓값이 "0"인걸로 보입니다. 문제의 제한 사항에 0이 있었는데도 못보고 계속 다른 케이스만 생각하다가 시..
2023.03.17 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(n) { const arr = [...Array(n)].map((v, i) => i) // n = 3까지는 idx값과 동일 for (let i = 4; i = 4 }
[프로그래머스] 2xn 타일링 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(n) { const arr = [...Array(n)].map((v, i) => i) // n = 3까지는 idx값과 동일 for (let i = 4; i = 4 }
2023.03.16