728x90
▶k진수에서 소수 개수 구하기 - 2022 KAKAO BLIND RECRUITMENT (level 2)
▶풀이
주어진 숫자를 k에 맞춰 진수로 바꿔준다.
word라는 string을 하나 만들어서 k로 나눈 나머지를 계속해서 앞에다 넣어주는 방식으로 진수를 만들었다.
그다음에 숫자 '0'을 기준으로 split를 해주어 words에 저장한다.
그 숫자들을 하나씩 가지고 와서 소수인지 아닌지 확인하는 코드를 돌려
소수라면 answer를 1 증가시켜준다.
혹시 소수 구하는 방법이 궁금하다면 위에 나온 위키를 참고해보면 될 것이다.
물론 1부터 n까지 다 비교해보아도 되지만
그렇게 하면 시간 초과 나는 경우가 많아서 에라토스테네스의 체를 사용하면 빠르게 풀 수 있을 것이다.
def solution(n, k):
answer = 0
word = ''
while n:
word = str(n%k) + word
n = n//k
words = word.split('0')
for w in words:
if w == '':
continue
elif int(w) == 1:
continue
sosu = True
for i in range(2, int(int(w) ** 0.5) + 1):
if int(w)%i==0:
sosu=False
break
if sosu == True:
answer += 1
return answer
효율성 검사가 따로 없기 때문에
정확성만 통과된다면 바로 100점을 받을 수 있을 것이다.
728x90
'Programmers Code > Level 2' 카테고리의 다른 글
[Programmers] level2 - 영어 끝말잇기 (Python) : Summer/Winter coding(~2018) (0) | 2022.07.18 |
---|---|
[Programmers] level2 - 2 x n 타일링 (Python) : 연습문제 (0) | 2022.07.17 |
[Programmers] level2 - 수식 최대화 (Python) : 2020 카카오 인턴십 (0) | 2022.07.16 |
[Programmers] level2 - 짝지어 제거하기 (Python) : 2017 팁스타운 (0) | 2022.07.15 |
[Programmers] level2 - 메뉴 리뉴얼 (Python) : 2021 KAKAO BLIND RECRUITMENT (0) | 2022.06.12 |