코딩 테스트/programmers

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 reduce 안에서 이렇게 삼항 연산자를 쓸 수도 있다. 정답 function solution(num_list) { return num_list.reduce((a, b) => (num_list.length >= 11 ? a + b : a - b)); }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 "flag ?"는 flag가 true인지 아닌지 판별한다. 정답 function solution(a, b, flag) { return flag ? a + b : a - b; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 "문자열 뒤의 n글자"는 결국 "문자열 뒤에서부터 n글자"와 의미가 같다. 문자열의 길이에서 n을 뺀 값이 시작점이 된다. 끝점의 값은 substring에서 my_string.length(해당 문자열의 길이)로 잡는다. 그런데 사실 끝점의 값을 생략해도 동일한 결과가 출력된다. 정답 function solution(my_string, n) { return my_string.substring(my_string.length - n); } function solution(my_string, n) { re..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 이 문제에서는 map보다는 slice나 substring으로 푸는 게 더 적당하다. 정답 function solution(my_string, n) { return my_string.slice(0, n); } function solution(my_string, n) { return my_string.substring(0, n); } // my_string을 배열로 바꾼다 // map을 돌려 인덱스가 n 이하면 해당 값을 반환한다 // 인덱스가 n을 초과하면 빈 문자열("")을 반환한다 // 문자열 형..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 같은 옹알이를 연속으로 할 수 없다는 점을 주의해서 풀어야 한다. 배열에서 발음 가능한 문자열을 각각의 숫자로 치환한다. map을 돌려 배열의 모든 요소를 개별적으로 쪼개고 숫자로 바꾼다. filter를 통해 숫자가 아닌 배열을 제거한다. for문으로 해당 배열에 연속된 숫자가 있으면 "X"를 추가한다. filter로 "X"가 없는 배열을 세서 반환한다. 정답 function solution(babbling) { for (let i = 0; i < babbling.length; i++) { babb..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(name, yearning, photo) { const obj = {}; name.map((x, idx) => { if (obj[x] === undefined) obj[x] = yearning[idx]; }); const answer = photo // .map(x => x.map(x => (obj[x] === undefined ? 0 : obj[x]))) .map(x => x.reduce((a, b) => a + b)); return answer; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 participant는 필연적으로 completion 전체를 포함하기 때문에 sort를 이용해 간단히 풀 수 있다. let participant = ["marina", "josipa", "nikola", "vinko", "filipa"]; let completion = ["josipa", "filipa", "marina", "nikola"]; participant.sort(); completion.sort(); console.log(participant); // [ 'filipa', 'josipa'..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 입력받은 변수 X를 새로운 변수에 할당하지 않고 새로운 값으로 변경시켜도 된다. 여기에서 for문은 X와 Y에 서로 중복되는 값을 체크한다. X와 Y에 0부터 10까지의 숫자가 몇 개씩 들어 있는지 확인하고, 더 적게 들은 쪽을 answer에 repeat해서 채운다. 정답 function solution(X, Y) { X = X.split("").map(Number); Y = Y.split("").map(Number); let answer = ""; // 0부터 10까지의 숫자가 X, Y에 각각 몇..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(n, lost, reserve) { let newLost = lost .filter(x => !reserve.includes(x)) .sort((a, b) => a - b); let newReserve = reserve .filter(x => !lost.includes(x)) .sort((a, b) => a - b); const num = newLost.length; let borrow = 0; for (let i = 0; i < newLost.length; i++)..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 paintIndex는 빈 칸에서부터 페인트를 칠한 마지막 인덱스 값이다. 정답 function solution(n, m, section) { let answer = 0; let paintIndex = 0; section.forEach(x => { if (x > paintIndex) { answer++; paintIndex = x + m - 1; } }); return answer; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 goal 배열의 첫 번째 요소가 cards1 혹은 cards2의 첫 번째 요소에 존재하지 않으면 "No"를 반환한다. 정답 function solution(cards1, cards2, goal) { let answer = "Yes"; for (let i = 0; i < goal.length; i++) { if (goal[i] === cards1[0]) { cards1.shift(); } else if (goal[i] === cards2[0]) { cards2.shift(); } else { answ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 좀더 효율적인 약수 구하는 식을 익혀두자. 정답 const getDivisors = num => { const divisors = []; for (let i = 1; i a + b); } // 시간 초과 function solution(number, limit, power) { const arr1 = Array(number) .fill(1) .map((a, b) => a + b); const arr2 = []; for (let i = 0; i < number; i++) { arr2.push( Arr..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 // 배열에서 특정 요소의 개수 구하기 let arr = [0, 2, 0, 0, 0, 0]; let sum1 = arr.filter(x => x === 0).length; let sum2 = arr.reduce((acc, cur) => acc + (cur === 0), 0); console.log(sum1); // 5 console.log(sum2); // 5 정답 // 리팩토링 function solution(lottos, win_nums) { const rank = [6, 6, 5, 4, 3, ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 // 배열에 값 할당하기 참고 let arr = [1, 2, 3]; arr[1] *= 2; console.log(arr); // [ 1, 4, 3 ] arr[2] *= -1; console.log(arr); // [ 1, 4, -3 ] 정답 function solution(dartResult) { let arr = dartResult.split(""); let tmp = 0; let answer = []; for (let i = 0; i < arr.length; i++) { if (Number(ar..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(k, score) { let day = []; let answer = []; for (let i = 0; i b - a); let honor = day.slice(0, k); answer.push(Math.min(...honor)); } return answer; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 splice가 시간 초과를 발생시켜 slice로 바꿨더니 통과되었다. 정답 function solution(k, m, score) { score.sort((a, b) => b - a); let idx = 0; let answer = 0; for (let i = 0; i < Math.floor(score.length / m); i++) { idx += m; let box = score.slice(idx - m, idx); answer += box.pop() * m; } return answer; } ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(N, stages) { let answer = []; for (let i = 1; i x x > i); } answer.sort((a, b) => b.failure - a.failure); return answer.map(x => x.stage); }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(nums) { const newNums = []; let answer = 0; for (let i = 0; i < nums.length; i++) { for (let j = i + 1; j < nums.length; j++) { for (let k = j + 1; k < nums.length; k++) { newNums.push(nums[i] + nums[j] + nums[k]); } } } for (let i = 0; i < newNums.length; i++) {..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 answers가 변수로 주어지는데, 이 answers의 갯수가 결국 문제의 개수임을 염두에 두고 풀어야 한다. 정답 function solution(answers) { let supo1 = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]; let supo2 = [2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5]; let supo3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; let ans..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 에라토스테네스의 체 정답 // 에라토스테네스의 체 function solution(n) { let answer = 0; const arr = new Array(n + 1).fill(true); for (let i = 2; i
카버
'코딩 테스트/programmers' 카테고리의 글 목록 (4 Page)