[알고리즘] 소수 범위 구하기

2022. 8. 24. 15:57·알고리즘
반응형

들어가며 

소수구하기 - JavaScript를 먼저 공부한 다음 푼 문제입니다. 

바로 풀리지 않거나 설명이 필요하다면 참고하는 것을 추천드립니다. 

문제 설명

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.

소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)

제한 조건

  • n은 2이상 1000000이하의 자연수입니다.

입출력 예

n result
10 4
5 3
입출력 예 설명

입출력 예 #1
1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환

입출력 예 #2
1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환

나의 풀이

const n = 10;

function solution(n) {
  const primes = [false, false, ...Array(n - 1).fill(true)];

  for (let i = 0; i * i < n; i++) {
    if (primes[i]) {
      for (let j = i + i; j <= n; j += i) {
        primes[j] = false;
      }
    }
  }

  return primes.filter(Boolean);
}
solution(n);

에라토스테네스의 체를 활용하여서 문제를 풀었다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'알고리즘' 카테고리의 다른 글

[알고리즘] 2 x n 타일링  (0) 2022.08.31
[알고리즘] 배달 - 다익스트라 알고리즘  (0) 2022.08.30
[알고리즘] 배달 - BFS를 다시 공부하고  (0) 2022.08.20
[알고리즘] 가장 먼 노드  (1) 2022.08.19
[알고리즘] 입국 심사  (0) 2022.08.18
'알고리즘' 카테고리의 다른 글
  • [알고리즘] 2 x n 타일링
  • [알고리즘] 배달 - 다익스트라 알고리즘
  • [알고리즘] 배달 - BFS를 다시 공부하고
  • [알고리즘] 가장 먼 노드
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    바질
    덤프
    영어회화
    바질 키우기
    react
    Node.js
    next.js
    프로그래머스
    ReactNative
    다이소
    CCNA
    알고리즘
    영어독학
    리얼학습일기
    typescript
    CSS
    타일러영어
    Docker
    Babel
    자바스크립트
    네이버 부스트캠프
    식물
    리액트
    리얼클래스
    타입스크립트
    redux
    ChatGPT
    webpack
    네트워크
    javascript
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[알고리즘] 소수 범위 구하기
상단으로

티스토리툴바