[python] k진수에서 소수 개수 구하기

김페페·2023년 1월 1일
0

카카오 기출

목록 보기
2/2

문제

https://school.programmers.co.kr/learn/courses/30/lessons/92335


풀이(는 아니고 힌트)

n을 k진법으로 나타낸 문자열 반환

# 다른 사람 풀이 (충공깽..)
def conv(n, k):
    s = ""
    while n:
        s += str(n % k)
        n //= k
    return s[::-1]

파이썬 그 자체..


# 내 풀이
def solution(n, k):

    # n을 k 제곱의 범위로 나타내기: k^m <= n <= k^m+1
    m = 0
    while True:
        if k**m >= n:
            m -= 1
            break
        m += 1

    # 길이가 m+1인 배열로 표시하기 (0으로 초기화): [k^m, k^m-1, k^m-2 ... k^2, k^1, k^0]
    jinsoo = [0] * (m + 1)

    for i in range(len(jinsoo)):
        up = k ** (m - i)
        for j in range(k - 1):
            if n >= up:
                n -= up
                jinsoo[i] += 1

    # 배열을 문자열로 전환
    jinsoo = "".join(str(i) for i in jinsoo)

문돌이 그 자체...




profile
독학 머신

0개의 댓글