-
[Python] programmers k진수에서 소수 개수 구하기알고리즘/카카오기출 2022. 1. 22. 12:54728x90
1. 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/92335
2. 문제 요약
진수 변환 후 0을 기준으로 나눠서 소수의 개수를 출력하기
3. 아이디어 정리
- 진수 변환
- 0을 기준으로 쪼갠다
- 각 쪼갠 수에 대해 소수 판별 진행
4. 문제 풀이
4-1. 내 풀이
import string import math tmp = string.digits+string.ascii_lowercase def convert(num, base) : """ 진수 변환 후 0을 기준으로 나눠서 소수 판별 :param num: :param base: :return: """ q, r = divmod(num, base) if q == 0 : return tmp[r] else : return convert(q, base) + tmp[r] def is_prime_number(x): """ 소수 판별 :param x: :return: """ for i in range(2, int(math.sqrt(x)) + 1): if x % i == 0: return False return True def solution(n, k): answer = 0 convert_num = convert(n, k) for i in convert_num.split('0'): if i: # 빈값이 아닌 경우 if int(i) == 1: continue elif is_prime_number(int(i)): # 소수인 경우 + 1 answer += 1 return answer print(solution(n=110011,k=10))
5. 결론
- 구현
'알고리즘 > 카카오기출' 카테고리의 다른 글
[Python] programmers 방금 그곡 (0) 2022.02.11 [Python] programmers 3차 압축 (0) 2022.02.11 [Python] programmers 양궁대회 (0) 2022.01.23 [Python] programmers 주차요금계산 (0) 2022.01.22 [Python] programmers 신고 결과 받기 (1) 2022.01.22