undefined
[프로그래머스] 소수 찾기 -JS 본문
반응형
문제 설명
문제 풀이
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의 값만 리턴한다는 사실
반응형
'Coding Test' 카테고리의 다른 글
[프로그래머스] 문자열 내 p와 y의 개수 -JS (0) | 2022.06.06 |
---|---|
[프로그래머스] 서울에서 김서방 찾기 -JS (0) | 2022.06.06 |
[프로그래머스] 시저 암호 -JS (0) | 2022.06.05 |
[프로그래머스] 약수의 합 - JS (0) | 2022.06.04 |
[프로그래머스] 이상한 문자 만들기 -JS (0) | 2022.06.04 |
Comments