Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- CS
- AWS
- 문자열
- Search Algorithm
- Local Search
- node.js
- 컴퓨터공학
- 알고리즘
- Simulated Annealing
- node배포
- 코드
- multer-s3
- 컴퓨터과학
- 파이썬
- Hill Climbing
- 배포
- 철학
- lightsailor
- computerscience
- typescript
- 문자열처리
Archives
- Today
- Total
지식의모듈화
[JS][소수]k진수에서 소수 개수 구하기 본문
function solution(n, k) {
let numStr= n.toString(k);
// console.log(numStr)
let nums = numStr.split('0')
// console.log(nums);
let num=nums.map(e=>Number(e));
num= num.filter(e=> e!==0);
const MAX= 1000000;
let sample=new Array(2*MAX+1).fill(true);
sample[0]=false;
sample[1]=false;
let init=2;
for( let i=2; i< sample.length;i++){
for(let j= 2*i; j<= 2*MAX;j+=i){
sample[j]=false;
}
}
let answer=0;
let res=num.filter(e=>{
if(sample[e]){
return e;
}
})
answer=res.length
return answer;
}
보자마자 에라토느테네스의 체를 활용해서, 비교해서 풀어야겠다는 생각을 했다. 하지만

이전 코테에서도 엣지케이스에 하나 걸려버렸는데.. 아마 MAX가 진수로 변환되었을때 더 큰 값이 나타날 가능성이 존재하기에 저런 출력이 나오는 것 같다. 그래서 풀이를 다음과 같이 바꿔야 한다.
function solution(n, k) {
let numStr= n.toString(k);
let nums = numStr.split('0')
let num=nums.map(e=>Number(e));
num= num.filter(e=> e!==0);
// console.log(num)
let answer=0;
let res=num.filter(e=>{
if(isPrime(e)){
return e;
}
})
function isPrime(n){
if(n===1) return false;
for(let i=2;i<=Math.floor(Math.sqrt(n));i++){
if(n%i===0) return false;
}
return true;
}
// console.log(res);
answer=res.length
return answer;
}
이전 회사에서 봤던 코테의 경우에도 edge case를 통과하지 못했는데 참..
'PS > 프로그래머스' 카테고리의 다른 글
| [구현][JS] 주차요금계산 (0) | 2022.07.28 |
|---|---|
| [구현][Javascript] 오픈채팅방 (0) | 2022.07.28 |
| [완전탐색][JS] 문자열 압축 (0) | 2022.07.26 |
| [JS][DFS]모음사전 (0) | 2022.07.22 |
| [JS]최소직사각형 (0) | 2022.07.22 |