티스토리 뷰
문제 유형
- 소수를 빠른 방법으로 구할 수 있는가 (몫과 나머지 연산)
- 문자열을 나누거나 합칠 수 있는가
TC1 시간초과 이유
- for문을 다 돌면 O(n)
- 제곱근까지 돌면 O(n ** 0.5)
이 문제에서는 가까스로 제곱근으로 구하면 통과되지만,
에라토스테네스의 체를 구현해야 할 수도 있다.
def n_to_kth(n, k):
"""
정수 n 을 k 진수로 변환
"""
tmp = ''
while n > 0:
n, rest = divmod(n, k)
tmp = str(rest) + tmp # 나머지를 거꾸로 출력
return tmp
def is_prime_num(n):
"""
소수 찾기 : N-1 ~ 2 까지의 수 중, 어떠한 수로도 나누어지지 않는 수
"""
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):
kth_number = n_to_kth(n, k)
print(kth_number)
numbers = kth_number.split('0')
answer = 0
for number in numbers:
if number and is_prime_num(int(number)): # 110011 split 시 공백 발생 ['11', '', '11']
answer += 1
return answer
알아두어야 할 알고리즘
- 에라토스테네스의 체
파이썬 내장함수 split 짚고가기
"0".split("0")
"00".split("0")
"100".split("0")
"010".split("0")
"001".split("0")
# result
['', '']
['', '', '']
['1', '', '']
['', '1', '']
['', '', '1']
'Coding Test' 카테고리의 다른 글
[Baekjoon] 16956_늑대와 양 (0) | 2022.01.17 |
---|---|
[Jungol] 1329. 별삼각형3 (0) | 2022.01.05 |
[Jungol] 1719. 별삼각형2 (0) | 2022.01.04 |
[Programmers] 빛의 경로 사이클 (0) | 2022.01.02 |
[Jungol] 1438. 색종이 (0) | 2021.12.31 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 개발자책추천
- 싸피
- 폰트추천
- 개발자도서추천
- 한글무료폰트추천
- 클린코더
- ssafy후기
- 맥과윈도우로깃허브
- 개발언어순위
- ssafy6기
- SSAFY
- ssafy결과
- 개발자커리
- 개발도서추천
- ssafy합격후기
- 개발언어추천
- 싸피6기
- intj여자
- 개발자
- 임대차3법
- 무료폰트추천
- 상업용무료폰트
- 디즈니얼굴
- 깃허브계정
- 브왈라
- 코딩도서
- 폰트
- 깃허브계정2개
- 개발자로드맵
- 클린코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함