반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

undefined

[프로그래머스] 소수 찾기 -JS 본문

Coding Test

[프로그래머스] 소수 찾기 -JS

JavaScripter 2022. 6. 6. 00:15
반응형

문제 설명


문제 풀이

function solution(n) {
    const array = Array(n+1).fill(true).fill(false,0,2)
    const answer = []
    for(let i = 2; i <= n; i++) {
        if(array[i]) {
            for(let j = i*i; j<= n; j+=i) {
                array[j] =false
            }
        }
    }
    return array.filter(e=>e).length
}

1. 배열을 만든다 (index와 수를 맞춰주기 위해서 n+1 // 소수가 아닌 0 과 1 제외 )

 

2.  for루프로 2부터 소수계산 시작

 

3. 만약 array에서 i가 true라면 그 배수를 제거하기 위한 다음 for루프로 이동

 

4. (j+=i) => 배수를 구하는 식 // 모든 배수를 구하여 false로 바꿔준다.

 

5. 이후 array.filter(e=>e)로 true의 값만 리턴

 


배운 점

1. 불리언 값을 이용하여 소수를 찾았다는 점 => 숫자값을 이용했으면 일일이 배열에서 빼내줘야 했을 것임

 

2. fill의 실사용

 

3. j+=i 라는 배수를 구하는 식의 활용

 

4. filter(e=>e)를 사용하면 true의 값만 리턴한다는 사실

 

 

 

반응형
Comments