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 |
Tags
- silent printing
- 이미지 데이터 타입
- Git
- vercel git lfs
- augmentedDevice
- dvh
- Each child in a list should have a unique "key" prop.
- animation
- adb connect
- react-native-dotenv
- Recoil
- github pdf
- 티스토리 성능
- ffi-napi
- adb pair
- camera permission
- github 100mb
- camera access
- nextjs
- rolldown
- Failed to compiled
- github lfs
- Can't resolve
- react-native
- device in use
- ELECTRON
- npm package
- custom printing
- electron-packager
- html
Archives
- Today
- Total
Bleeding edge
[프로그래머스] k진수에서 소수 개수 구하기 - 자바스크립트 본문
https://programmers.co.kr/learn/courses/30/lessons/92335
음.. 문제 풀이 플로우는 상당히 빨리잡았지만.. 실수로 isPrime 함수를 잘못써서.. 시간이 살짝 걸린 문제이다. 이 실수는.. 반성하기로하고. 이 실수를 제외한 플로우 차트를 쓰자면 (실수는 반복문 부분에 num%i를 넣어야하는데 i%sqrt를 넣는 기괴한짓을 했다.
1. isPrime - 소수를 찾기 위한 함수를 작성한다.
2. k에 주어진 숫자로 진수변환을 한다. number.toString(k)
3. number을 0으로 split한다 이유는 소수 판별 숫자를 x, y, z라고하면, x0y0z로 분리되기때문에 0으로 split을 하는 것이다. 설명에서 주어진 010과 같은경우를 신경쓰지 않는 이유는, 1은 어차피 소수가 아니기때문에 판별대상에 넣고 빠르게 체크하면 된다.
4. for 문으로 split된 대상들을 함수를 판별하며 answer ++ 처리한다.
사실상 1번은 에라토스테네스의체, 2번은 내장기능, 3번만 눈치 챈다면 쉽게 풀 수 있는 문제이다. 물론 3번을 정규식을 써서 푸는 방법도있다. 0으로 쪼개면 array안에 ''이 많이나오기 때문에, 효율이 살짝 떨어질 수 있지만 isPrime에서 빠르게 return false를 할 수 있는 값이니 굳이 정규식을 사용할 필요는 없다. 아래는 풀이다.
function solution(n, k) {
let answer = 0;
let trans = n.toString(k);
trans = trans.split('0')
console.log(trans)
for(let i=0;i<trans.length;i++){
if(isPrime(trans[i])===true){
answer++;
}
}
console.log(trans)
return answer
}
function isPrime(num){
num = Number(num)
if(num <= 1) return false;
if(num%2===0) return num===2? true : false;
const sqrt = Math.sqrt(num)
for(let i = 3; i<=sqrt;i++){
if(num%i ===0) return false
}
return true;
}
'코딩테스트 공부' 카테고리의 다른 글
[프로그래머스] n^2 배열 자르기 - 자바스크립 (0) | 2022.05.03 |
---|---|
[프로그래머스] [1차] 다트 게임 - 자바스크립트 (0) | 2022.04.28 |
[프로그래머스] 행렬의 곱셈 - 자바스크립트 (0) | 2022.04.25 |
[프로그래머스] 삼각 달팽이 - 자바스크립트 (0) | 2022.04.20 |
[프로그래머스] - 124 나라의 숫자 (0) | 2022.04.19 |