PS/Programmers
Programmers / Level 2 / 뒤에 있는 큰 수 찾기 / JS
문제 간단설명정수로 이루어진 배열 numbers가 있다.각 수에 대해서 가장 가깝고 자신보다 큰 수를 '뒷 수'라고 한다.각 요소에 대해 '뒷 수'들을 모아서 배열로 반환하면 된다.만약 뒷 수가 존재하지 않는다면 -1을 반환하면 된다. 제한 사항4 1 실패 코드 (시간 초과)function solution(numbers) { const result = []; for(let i=0; i cur) { backNumber = next; break; } } result.push(backNumber); } return result;} 최악의 경우에 O(n^2..
Programmers / Level 3 / 베스트앨범 / JS
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr const infoObj = {}; const playOfGenre = {}; let result = []; function solution(genres, plays) { const length = genres.length; /** * 곡별 정보들을 객체로 만드는 함수 */ const getInfo = () => { for (let i = 0; i < length; i++) { const genre = genres[i]; const play = plays[i]; infoObj[i] = {..
Programmers / Level 2 / 숫자의 표현 / JS
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(n) { let result = 0; for(let i=1; i
Programmers / Level 2 / 괄호 변환 / JS
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr /** * 올바른 괄호 문자열인지 판단해서 boolean 값으로 반환하는 함수 * * @param {string} str 괄호 문자열 * @returns {boolean} */ function isValid(str) { let cnt = 0; for (let i = 0; i < str.length; i += 1) { cur = str[i]; if (cur === '(') { cnt += 1; } else { cnt -= 1; } if (cnt < 0) return false; } retu..
Programmers / Level 2 / 수식 최대화 / JS
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function getOperatorPermutationList(OP_LIST, num) { let result = []; if (num === 1) return OP_LIST.map((el) => [el]); OP_LIST.forEach((fixed, idx) => { let rest = [...OP_LIST.slice(0, idx), ...OP_LIST.slice(idx + 1)]; let permutationList = getOperatorPermutationList(rest, nu..

Programmers / Level 2 / 삼각 달팽이 / JS
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(n) { let matrix = Array.from({ length: n }, () => new Array(n).fill(0)); let currentNumber = 1; let [row, col] = [-1, 0]; for (let i = 0; i < n; i += 1) { for (let j = i; j < n; j += 1) { if (i % 3 === 0) row += 1; if (i % 3 === 1) col += 1; if (i % 3 === 2..