Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 프론트엔드
- 토이프로젝트
- 코어자바스크립트
- 타입스크립트
- 리덕스
- 토이 프로젝트
- 리액트 패턴
- JavaScript
- react pattern
- 스택
- Form
- TypeScript
- tailwind
- tanstack query
- React
- reduxtoolkit
- Next.js
- 리액트
- styled component
- React Query
- 그리디
- react router dom
- Supabase
- revalidatepath
- 코테
- 동적계획법
- 자바스크립트
- 프로그래머스
- 코딩테스트
- 리액트 라우터 돔
Archives
- Today
- Total
느려도 한걸음씩
Lv.0 - 연속된 수의 합 본문
문제
풀이코드
const solution = (num, total) => {
let arr = Array.from({ length : num}, (_, index) => index + total).sort((a, b) => a - b)
return arr
while(true) {
if(arr.reduce((a, b) => a + b) === total) {
break
}
arr.unshift(arr.pop() - num)
}
return arr
}
풀이
num의 개수만큼 그리고 total에서 시작해 1씩 늘어나도록 오름차순 배열을 만들어준다 ex) num3 , total이 12일경우 [12, 13, 14]
그리고 while 조건문을 통해 배열의 합과 total을 비교해서 같으면 조건문을 멈추고 다르다면 배열의 맨뒤값을 제거하고 맨뒤값 값에서 배열의 길이만큼을 뺸값을 배열의 가장앞에 더해준다 ex) [12, 13, 14] => [11, 12, 13] => [10, 9, 8] 배열의 길이만큼을 빼줘야 + 1씩 일정하게 요소가 늘어나게 된다 그렇게 조건문이 돌면서 자연스럽게 연속된 수의 합이 들어간 배열이 완성된다
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Lv.1 - 삼총사 (0) | 2024.07.04 |
---|---|
Lv.1 - 두 개 뽑아서 더하기 (1) | 2024.07.04 |
Lv.0 - 배열 조각하기 (0) | 2024.07.04 |
Lv.0 - 정사각형으로 만들기 (0) | 2024.07.03 |
Lv.0 - 외계어 사전 (0) | 2024.07.03 |