출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/92335
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
더보기
먼저, 생각해야 할 부분
1. 조건에 해당하는 숫자문자열을 뽑아내기 위해서 가장 쉬운 방법은 무엇일지 생각해보자.
2. 어떤 게 더 쉬울지 생각해보자.
조건을 만족하는 소수를 찾는게 쉬울까, 아니면 일단 조건에 맞는 숫자를 찾고 그 중 소수를 골라내는게 더 쉬울까?
풀이
# 진수 변환
def changeToK(n, k):
k_string = ''
while n != 0:
k_string = str(n % k) + k_string
n //= k
return k_string
# 조건 만족
# 그냥 0으로 끊으면 모든 조건에 포함.
def isSatisfy(num_string):
return [string for string in num_string.split('0') if len(string) > 0]
# 소수 판별
def isPrime(num):
num = int(num)
if num == 1:
return False
for i in range(2, int(num**0.5 + 1)):
if num % i == 0:
return False
return True
def solution(n, k):
return len([i for i in isSatisfy(changeToK(n, k)) if isPrime(i)])
말을 어렵게 해놨는데 그냥 0으로 자른 배열이 모든 조건에 포함된다.
Github
GitHub - bh2980/Algorithm-Problem: 알고리즘 풀이 흔적들
알고리즘 풀이 흔적들. Contribute to bh2980/Algorithm-Problem development by creating an account on GitHub.
github.com
'알고리즘 > Python' 카테고리의 다른 글
[python] 프로그래머스 - 메뉴 리뉴얼 (0) | 2023.03.10 |
---|---|
[python] 프로그래머스 - 오픈채팅방 (0) | 2023.03.09 |
[python] 프로그래머스 - 튜플 (0) | 2023.03.09 |
[python] 프로그래머스 - 멀리 뛰기 (1) | 2023.03.09 |
[python] 프로그래머스 - 개인정보 수집 유효기간 (0) | 2023.03.09 |