https://school.programmers.co.kr/learn/courses/30/lessons/92335
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
우선 자바스크립트를 자유자제로 구현하지 못하는 나는 js보다 조금 더 편한 python으로 문제를 풀고 구현을 해 나가는 식으로 풀었다.
n진수로 바꾸고, 소수판별하는 식만 구현할 줄 안다면 충분히 쉽게 풀 수 있는문제지만, 진수변환과 소수판별을 처음 해보는 사람이라면 누구나 힘들 수 있는 문제로 느껴짐
function solution(n, k) {
// 진수변환
const convert = (n,k) => {
var result = ''
while (n >= k) {
var m = n%k
result = result + String(m)
n = parseInt(n / k);
}
if (n > 0) {
result = result + String(n)
}
return result.split('').reverse().join('')
}
// 소수 판별
const check = (num) => {
if (num <= 1) {
return false
}
MAX = parseInt(num ** (0.5))
for (var i =2; i<MAX+1; i++) {
if (num % i ===0) {
return false
}
}
return true
}
var answer = 0;
const string = convert(n,k)
const arr = string.split('0')
for (i = 0; i<arr.length; i++) {
// 빈 배열을 빼주기 위함
if (arr[i]) {
if (check(parseInt(arr[i]))) {
answer +=1
}
}
}
return answer;
}
문제를 풀면서 알게 된 js 코딩
- parseInt(string, radix) : 정수를 숫자로 변환시키는 내장함수이다. string에 들어간 문자열을 radix진수로 읽어서 10진수로 표현해주는 내장함수이다. radix가 없다면 기본값은 10으로 잡혀져 있어서 10진수로 표현이 된다. 만약 string자리에 값이 정수로 표현하지 못하는 문자라면 NaN이 출력!
- result.split('').reverse().join('') : 문자열을 한방에 뒤집을 수 있는 함수를 찾다가 발견한 코드 split('')으로 나누어 array로 변형한 뒤, reverse()를 사용하여 뒤집고, .join('')을 사용하여 값을 다시 string형태로 바꾸어준다!
'Algorithm > programmers' 카테고리의 다른 글
[JS]programmers: 메뉴리뉴얼 (0) | 2022.10.13 |
---|---|
programmers: 메뉴리뉴얼 (0) | 2022.10.12 |
programmers k진수에서 소수 개수 구하기 (0) | 2022.09.22 |
[JS]programmers 크레인 인형뽑기 게임(js) (0) | 2022.09.20 |
programmers 주차 요금 계산 (0) | 2022.09.19 |
댓글