728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/92335#
내 풀이
import math
import re
prime_list = set()
def solution(n, k):
answer = 0
num = modify(n, k)
split = re.split('0+', num)
for num in split:
if not num:
continue
i = int(num)
if isprime(i):
answer += 1
return answer
def modify(n, k):
rev_base = ''
while n > 0:
n, mod = divmod(n, k)
rev_base += str(mod)
return rev_base[::-1]
def isprime(num):
a=2
if num in prime_list:
return True
while a<=math.sqrt(num):
if num%a<1:
return False
a=a+1
if num>1:
prime_list.add(num)
return True
return False
알게 된 것
n진법 메서드와 isPrime 메서드는 기록해두는 것이 좋겠다
re.split() 을 통해 원하는 문자열을 쪼갤 수 있도록 공부하자
divmod() 에 대해 리마인드하자
피드백
empty 문자열을 리스트에서 필터링해 제거하려면 아래의 filter() 를 활용하면 된다.
split = filter(None, split)
'프로그래밍 > programmers&bj' 카테고리의 다른 글
[JAVA] 길 찾기 게임 (0) | 2022.04.12 |
---|---|
[JAVA] 다단계 칫솔 판매 (0) | 2022.03.28 |
[JAVA] 뉴스 클러스터링 (0) | 2022.03.18 |
[python] 메뉴 리뉴얼 (0) | 2022.03.13 |
[JAVA] 카카오프렌즈 컬러링북 (0) | 2022.03.06 |