김미정(프로그래머스)
문제 1.
머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요
문제 2.
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
JavaScript
복사
풀이 1.
function solution(array, height) {
return array.filter(v=>v > height).length
}
풀이 2.
해협!!!!!!!!!!!!!!!!!!!!!!!!!
JavaScript
복사
이예지(프로그래머스)
문제 1.
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
입출력 예
n numlist result
3 [4, 5, 6, 7, 8, 9, 10, 11, 12] [6, 9, 12]
5 [1, 9, 3, 10, 13, 5] [10, 5]
12 [2, 100, 120, 600, 12, 12] [120, 600, 12, 12]
문제 2.
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
입출력 예
box n result
[1, 1, 1] 1 1
[10, 8, 6] 3 12
HTML
복사
풀이 1.
function solution(n, numlist) {
var answer = [];
numlist.forEach((item)=>{
if(item % n === 0) {
answer.push(item)}
})
return answer;
}
풀이 1-2.
function solution(n, numlist) {
return numlist.filter((item)=>(item % n === 0));
}
풀이 2-1.
function solution(box, n) {
var answer = 1;
box.forEach((item)=>{
answer*=Math.floor(item/n);
})
return answer;
}
풀이 2-2.
function solution(box, n) {
return box.reduce((acc, cur)=>acc *= Math.floor(cur/n), 1);
}
<수민님 코멘트>
reduce에서 acc는 누적값이기 때문에 *=을 사용하지 않고 *만 사용해도 된다
function solution(box, n) {
return box.reduce((acc, cur)=> acc * Math.floor(cur/n), 1);
}
JavaScript
복사
조원영(프로그래머스)
문제
1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
주어진 수가 6이라면
6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다.
위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요.
단, 주어진 수가 1인 경우에는 0을,
작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요
JavaScript
복사
풀이
function solution(num) {
var answer = 0;
while (num > 1) {
answer++;
if (num % 2 == 0) {
num /= 2;
} else {
num = num * 3 + 1;
}
if (answer > 500) {
return -1;
}
}
return answer;
}
JavaScript
복사
김현태(프로그래머스)
function solution(t, p) {
let answer = 0;
const sliceLen = p.length;
const tArr = t.split('');
let front = 0;
let back = sliceLen;
while(back <= tArr.length){
const tmp = tArr.slice(front,back).join('');
if (tmp <= p) answer += 1;
front += 1;
back += 1;
}
return answer;
}
JavaScript
복사
유하은(프로그래머스)
문1)
공배수
문제 설명
정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
풀1)
function solution(number, n, m) {
return answer = (number % n === 0 && number % m === 0)? 1 : 0;
}
JavaScript
복사
문2)
부분 문자열인지 확인하기
문제 설명
부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다. 예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만, "aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.
문자열 my_string과 target이 매개변수로 주어질 때, target이 문자열 my_string의 부분 문자열이라면 1을, 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
풀2)
function solution(my_string, target) {
let answer = my_string.includes(target);
return (answer === true)? 1 : 0
}
<프로그래머스 - indexOf 사용>
function solution(my_string, target) {
return my_string.indexOf(target) === -1 ? 0 : 1
}
JavaScript
복사
손수민 (프로그래머스)
문제
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
JavaScript
복사
풀이1
(런타임 에러 난 답)
function solution(my_string) {
return my_string.match(/[^aiueo]+/g).join('')
}
현태님 코멘트 : 테스트 케이스로 "aeiuo'를 추가해본 결과 null값이 나온다
매게변수에 모음만 들어갈 경우 null
풀이2
function solution(my_string) {
return my_string.replace(/[aiueo]/g,'')
}
JavaScript
복사