본문 바로가기
Javascript/코딩테스트-연습

[JavaScript] 연속된 수의 합 - 프로그래머스

by BeomBe 2024. 4. 9.
반응형

문제 설명

 

나의 풀이

초기 값을 구하는 과정
1. total / num 으로 연속 되는 숫자의 중간 값을 구한다.
2. 중간 값에서 num / 2의 내림을 해서 구한 자릿수 값을 빼고 그 값을 올림으로 해서 초기 값을 구한다.
3. Array.from() 메서드를 이용해 구해둔 초기값 부터 num의 길이 만큼 해서 답을 구한다.

function solution(num, total) {
  const min = Math.ceil(total / num - Math.floor(num / 2));
  
  return Array.from({ length: num }, (_, i) => i + min);
}

 

Math.ceil()

- Math.ceil() 함수는 주어진 숫자보다 크거나 같은 숫자 중 가장 작은 숫자를 integer 로 반환합니다.

Math.ceil(0.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004); // 8
Math.ceil(-0.95); // -0
Math.ceil(-4); // -4
Math.ceil(-7.004); // -7

 

Array.from()

- Array.from() 정적 메서드는 순회 가능 또는 유사 배열 객체에서 얕게 복사된 새로운 Array 인스턴스를 생성합니다.

console.log(Array.from('foo'));
// Expected output: Array ["f", "o", "o"]

console.log(Array.from([1, 2, 3], (x) => x + x));
// Expected output: Array [2, 4, 6]

 

구문 - 매개변수 설명

 

arrayLike

배열로 변환할 순회 가능 또는 유사 배열 객체입니다.

 

mapFn - Optional

배열의 모든 요소에 대해 호출할 함수입니다. 이 함수를 제공하면 배열에 추가할 모든 값이 이 함수를 통해 먼저 전달되고, mapFn의 반환 값이 대신 배열에 추가됩니다.

이 함수는 다음 인수를 사용하여 호출됩니다.

  1. element - 배열에서 처리 중인 현재 요소.
  2. index - 배열에서 처리 중인 현재 요소의 인덱스.

thisArgOptional

mapFn 실행 시에 this로 사용할 값입니다.

Array.from(arrayLike)
Array.from(arrayLike, mapFn)
Array.from(arrayLike, mapFn, thisArg)

 

아래 링크를 통해서 Math.ceil()과 Array.from()을 더 공부하시면 됩니다.

Math.ceil() - MDN
Array.from() - MDN

반응형