[프로그래머스 Lv.2] 카카오 블라인드 채용 - k진수에서 소수 개수 구하기

2024. 12. 13. 16:03·코딩테스트
728x90
반응형

문제

문제 설명 양의 정수 n이 주어집니다.

이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.

  • 0P0처럼 소수 양쪽에 0이 있는 경우
  • P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우
  • 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우
  • P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다.
  • 예를 들어, 101은 P가 될 수 없습니다.

정수 n과 k가 매개변수로 주어집니다. n을 k진수로 바꿨을 때, 변환된 수 안에서 찾을 수 있는 위 조건에 맞는 소수의 개수를 return 하도록 solution 함수를 완성해 주세요.

 

코드

def isPrime(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
    k_base = ''
    
    while n > 0:
        k_base = str(n%k) + k_base
        n = n // k 
    
    if k_base and '0' not in k_base:
        if isPrime(int(k_base)):
            return 1
    else:
        while '0' in k_base:
            e = k_base.find('0')
            if e == 0:
                k_base = k_base[1:]
                continue
            
            if isPrime(int(k_base[:e])):
                answer += 1
            k_base = k_base[e+1:]
        
        if k_base and isPrime(int(k_base)):
            answer += 1

    return answer

 

풀이 참고

def isPrime(n):
    if n == 1:
        return 0
    
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return 0
    
    return 1

def solution(n, k):
    answer = 0
    k_base = ''
    
    while n > 0:
        k_base = str(n%k) + k_base
        n = n // k 
    
    for num in k_base.split('0'):
        if not num:
            continue
        else:
            answer += isPrime(int(num))
    
    return answer

 

728x90
반응형

'코딩테스트' 카테고리의 다른 글

[프로그래머스 Lv.2] 카카오 블라인드 채용 - 방금 그 곡 (+34번 케이스 오류)  (2) 2024.12.16
[프로그래머스 Lv.2] 카카오 블라인드 채용 - n진수 게임] (구현 쉬움)  (3) 2024.12.14
[프로그래머스 Lv.2] 뒤에 있는 큰 수 찾기  (0) 2024.12.13
[프로그래머스 Lv.2] 타겟 넘버 (DFS)  (1) 2024.12.12
[프로그래머스 Lv.2] 2022 카카오 Tech 인턴쉽 - 두 큐 합 같게 만들기  (2) 2024.12.12
'코딩테스트' 카테고리의 다른 글
  • [프로그래머스 Lv.2] 카카오 블라인드 채용 - 방금 그 곡 (+34번 케이스 오류)
  • [프로그래머스 Lv.2] 카카오 블라인드 채용 - n진수 게임] (구현 쉬움)
  • [프로그래머스 Lv.2] 뒤에 있는 큰 수 찾기
  • [프로그래머스 Lv.2] 타겟 넘버 (DFS)
View synthesis 공부하는 대학원생
View synthesis 공부하는 대학원생
AI - view synthesis에 대해 공부하고 있으며, AI 공부하시는 분들과 함께 소통하고 싶습니다 😍
  • View synthesis 공부하는 대학원생
    Happy Support's Blog
    View synthesis 공부하는 대학원생
  • 전체
    오늘
    어제
    • 분류 전체보기 (62)
      • View synthesis (3)
      • Backbone (5)
      • Generative Models (5)
      • On-device AI (3)
      • ML (2)
      • DL (1)
      • LLM (2)
      • 코딩테스트 (25)
      • 에러 해결 모음집 (11)
      • 기타 (4)
  • 링크

  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
View synthesis 공부하는 대학원생
[프로그래머스 Lv.2] 카카오 블라인드 채용 - k진수에서 소수 개수 구하기
상단으로

티스토리툴바