Programmers Level 0 문제 풀이 #03 - 2022-10-26
3-1. 약수 구하기
문제)
정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
내가 작성한 답안)
function solution(n) {
// 22-10-26.
// n 길이의 배열을 만든 뒤, filter를 이용하여 n에서 it을 나눈 나머지가 0인 배열들만 추출
return Array.from({length:n}, (v,k) => k+1).filter(it => {return n%it === 0})
}
3-2. 중앙값 구하기
문제)
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.
내가 작성한 답안)
function solution(array) {
// 22-10-26
// array를 오름차순 정렬 후 배열의 정중앙 인덱스의 값을 반환한다
return array.sort((a,b) => {return a-b})[(array.length-1)/2];
}
3-3. 개미군단
문제)
개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.
내가 작성한 답안)
function solution(hp) {
// 22-10-26
// hp에서 5을 나눈 몫과 나머지를 비구조화 할당으로 배치, 여기서 general은 가용 가능한 장군개미, others는
// 가용 가능할 것으로 추측되는 장군개미 이외의 개미들
let [general, others] = [Math.floor(hp/5), Math.floor(hp%5)];
// others에 3을 나눈 몫과 나머지를 비구조화 할당으로 배치, 여기서 strong은 가용 가능한 병정개미, others는
// 가용 가능한 일개미의 수, 만약 없다면 자동으로 0을 배출
let [strong, another] = [Math.floor(others/3), Math.floor(others%3)];
return general+strong+another;
}
3-4. 점의 위치 구하기
문제)
사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.
- x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
- x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
- x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
- x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.
x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.
내가 작성한 답안)
function solution(dot) {
// 22-10-26
if (dot[0]*dot[1]>0 && dot[0] > 0) {
return 1;
}else if (dot[0]*dot[1]<0 && dot[0]<0) {
return 2;
}else if (dot[0]*dot[1]>0 && dot[0]<0) {
return 3;
}else {
return 4;
}
}
3-5. 세균 증식
문제)
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
내가 작성한 답안)
function solution(n, t) {
// 22-10-26
// t 개수만큼의 배열을 생성한 후, reduce를 활용하여 배열 개수만큼 2를 곱한다
return Array.from({length:t}, (v,k) => k+1).reduce((acc,cur) => acc *= 2, n)
}
'Programmers > Level 0' 카테고리의 다른 글
<22.10.29>프로그래머스 Level 0 문제 풀이 #06 (0) | 2022.10.29 |
---|---|
<22.10.28>프로그래머스 Level 0 문제 풀이 #05 (0) | 2022.10.28 |
<22.10.27>프로그래머스 Level 0 문제 풀이 #04 (0) | 2022.10.27 |
<22.10.25> 프로그래머스 Level 0 문제 풀이 #02 (0) | 2022.10.25 |
<22.10.24> 프로그래머스 Level 0 문제 풀이 #01 (0) | 2022.10.24 |