반응형
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
- 코테연습
- web
- python
- VUE
- Level3
- 카카오
- Level1
- 배열
- 백준
- 웹프로그래밍
- 고득점Kit
- Doitvue.js입문
- Level2
- C++
- Medium
- CS
- 프로그래밍
- LeetCode
- 리액트
- OS
- react
- javascript
- dp
- 리트코드
- 프로그래머스
- typescript
- sql
- 파이썬
- 자바스크립트
- 동적계획법
Archives
- Today
- Total
[프로그래머스] k진수에서 소수 개수 구하기 - python 본문
반응형
k진수에서 소수 개수 구하기
문제
양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.
- 0P0처럼 소수 양쪽에 0이 있는 경우
- P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우
- 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우
- P처럼 소수 양쪽에 아무것도 없는 경우
- 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다.
- 예를 들어, 101은 P가 될 수 없습니다.
정수 n과 k가 매개변수로 주어집니다. n을 k진수로 바꿨을 때, 변환된 수 안에서 찾을 수 있는 위 조건에 맞는 소수의 개수를 return 하도록 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ n ≤ 1,000,000
- 3 ≤ k ≤ 10
풀이
k진법으로 변환한 후에 0을 기준으로 split해서 소수인지 확인한다
import re
def n_base(n, number):
result = []
if number == 0:
return '0'
while number > 0:
result.append(str(number % n))
number //= n
return ''.join(result[::-1])
def is_prime(n):
if n == 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def solution(n, k):
answer = 0
result = n_base(k, n)
result = re.split('[0]+',result)
for r in result:
if r != '' and is_prime(int(r)):
answer += 1
return answer
반응형
'코테 문제 풀이' 카테고리의 다른 글
[프로그래머스] 양궁대회 - python (0) | 2022.04.21 |
---|---|
[프로그래머스] 주차 요금 계산 - python (0) | 2022.04.21 |
[프로그래머스] N진수 게임 - python (0) | 2022.04.21 |
[프로그래머스] 파일명 정렬 - python (0) | 2022.04.21 |
[프로그래머스] 압축 - python (0) | 2022.04.21 |
Comments