[프로그래머스] Lv.0 - 연속된 수의 합

·2023년 3월 22일
0

Programmers

목록 보기
3/30
post-thumbnail

✨ 문제설명

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

🔥 제한사항

  • 1 ≤ num ≤ 100
  • 0 ≤ total ≤ 1000
  • num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.

입출력 예


🌟 내 풀이

function solution(num, total) {
  let answer = [];
  const startNumber = Math.ceil(total / num) - Math.floor(num / 2);
  for (let i = 0; i < num; i++) {
    answer.push(startNumber + i);
  }
  return answer;
}

📍 코드 해석
: 배열의 시작 숫자를 확인한 뒤 num의 수만큼 반복문을 돌렸다.

1. 배열의 중간 값 구하기
total / num을 해주었고, 정수로 떨어지지 않을 경우를 대비해 올림해 주었다.

total = 14, num = 4 일 때
total / num = 3.5
Math.ceil(total/num) = 4
result = [2, 3, 4, 5]

2. 배열의 시작 숫자 확인하기
num / 2를 한 뒤, 정수로 떨어지지 않을 경우를 대비해 내림했다.

total = 12, num = 3 일 때
num / 3 = 1.5
Math.floor(num/3) = 1

3. num의 수만큼 반복문

profile
🎨

0개의 댓글