728x90
SMALL
⭐ 문제 설명
연속된 세 개의 정수를 더해 12가 되는 경우 3,4,5 입니다. 두 정수 num 과 total 이 주어집니다. 연속된 수 num 개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return 하도록 soluction 함수를 완성해보세요.
⭐ 제한 사항
- 1 ≤ num ≤ 100
- 0 ≤ total ≤ 1000
- num 개의 연속된 수를 더하여 total 이 될 수 없는 테스트 케이스는 없습니다.
⭐ 입출력 예
num | total | result |
3 | 12 | [3,4,5] |
5 | 15 | [1,2,3,4,5] |
4 | 14 | [2,3,4,5] |
5 | 5 | [-1,0,1,2,3] |
⭐ 입출력 설명
입출력 예 #1
- num = 3, total =12 인 경우 [3,4,5]를 return 합니다.
입출력 예 #2
- num = 5 , total = 15 인 경우 [1,2,3,4,5]를 return 합니다.
입출력 예 #3
- 4개의 연속된 수를 더해 14가 되는 경우는 2,3,4,5 입니다.
입출력 예 #4
- 설명 생략
⭐ 나의 코드
function solution(num, total) {
let startNum = 0
//초반 [0~num]의 배열을 생성
let twoPointer = new Array(num). fill(0). map ((a,i)=> i).reduce((a,b)=>a+b,0)
//배열이 total과 같아질 때까지 반복
while(twoPointer !== total){
// 현재 배열의 합이 total 보다 작다면 +1
if(twoPointer <total){
startNum++
//크다면 -1
}else{
startNum--
}
//변경된 startNum에 따른 배열의 합 계산
twoPointer = new Array(num).fill(0).map((a,i)=>i+startNum).reduce((a,b)=>a+b,0)
}
return new Array(num).fill(0).map((a,i)=> i+startNum)
}
728x90
LIST
'알고리즘' 카테고리의 다른 글
[프로그래머스]- 잘라서 배열로 저장하기 (0) | 2023.03.22 |
---|---|
[프로그래머스]- 문자열 밀기 (0) | 2023.03.14 |
[ 프로그래머스 ] - 종이 자르기 (0) | 2022.12.27 |
[프로그래머스] 다음에 올 숫자 (0) | 2022.12.26 |
[프로그래머스] 옹알이(1) (0) | 2022.12.26 |