My First Programming

프로그래머스 억억단을 외우자 javascript

2022-11-275 분 소요
/images/thumbnail/프로그래머스.jpg

풀이

지문 처럼 e8이면

억억단에서 5,000,000 * 5,000,000 이지만

e값을 넘어가는 경우는 곱하여 e 이하의 값을 만들 수 없기 때문에 버린다.

아래는 찾는 범위를 나타낸다.

위 테이블을 구하는 방법은 아래와 같다.

for (let i = 1; i <= e; i++) {
  for (let j = i; j <= e; j += i) {
    arr[j]++;
  }
}

전체 코드

function solution(e, starts) {
  const arr = new Array(e + 1).fill(0);
  for (let i = 1; i <= e; i++) {
    for (let j = i; j <= e; j += i) {
      arr[j]++;
    }
  }
  const arr2 = new Array(e + 1).fill(0);
  let temp = 0;
  for (let i = e; i >= 1; i--) {
    if (temp <= arr[i]) {
      temp = arr[i];
      arr2[i] = i;
    } else {
      arr2[i] = arr2[i + 1];
    }
  }
  return starts.map((v) => arr2[v]);
}
Remy Sharp

JSC

새로운 기술 익히는게 재밌는 사람 😊