Recent Posts
Tags
- r
- 이것이 취업을 위한 코딩테스트다 with 파이썬
- 프로그래머스
- 이기적
- 빅데이터분석기사
- 오라클
- 네이버부스트캠프
- 데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- python
- boostcourse
- Machine Learning
- 난생처음 R코딩&데이터 분석 저서
- 코딩테스트
- AI 플랫폼을 활용한 데이터 분석
- 코딩테스트 python
- 빅데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- 데이터베이스
- DB
- boostcoures
- 인공지능기초다지기
- 부스트코스
- 파이썬
- Oracle
- [멀티잇]데이터 시각화&분석 취업캠프(Python)
- 정보처리기사
- SQL
- Ai
- 기초다지기
- 빅분기
- PY4E
- Today
- Total
매일공부
[코딩테스트 python] k진수에서 소수 개수 구하기 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
주의사항
: 해당 k진수로 변환했을 때 0으로 나눈 수 기준
> 그 수를 k진법이 아닌 10진수로 봤을 때 소수 여부
(문제를 꼼꼼히 읽자...!!!!😭)
def k_num(n, k): #k진법으로 변환
if k == 10:
return n #10진수면 그대로 반환
else:
base = ''
while n > 0:
n, mod = divmod(n, k)
base += str(mod)
return base[::-1]
def prime_num(num): #소수여부 판단
p_cnt = 0
for k in range(1,int(num**(1/2)+1)):
if num % k == 0:
p_cnt +=1
if p_cnt >= 2:
break
if p_cnt == 1:
return True
else:
return False
def solution(n, k): #실행함수
answer = 0
list_k = str(k_num(n, k)).split('0') #문자열로 변환하여 '0'을 기준으로 숫자 분리
for l in list_k:
stop = ['', '1']
if l not in stop and prime_num(int(l)):
answer+=1
return answer
처음 소수 여부 판단하는 함수에서
range(1, num)으로 했다가 "시간 초과"
>> 1번 테스트 케이스에서 "시간 초과" OR "실패"의 힌트를 보고
아차 싶어서 제곱근의 절반으로 범위 수정
그 다음은 1도 소수라고 생각해서 넣었는데
소수 정의 = 1과 자기자신.
즉, 1은 소수가 아님! 제외가 맞음
다른 분 풀이 확인 했을 때
소수 여부 판단은 더 간결하게 가능👍
def prime_num(num): #소수여부 판단
#while문 사용
i = 2
while i*i <=n:
if n%i == 0:
return False
i += 1
return True
#for문 사용
for k in range(2,int(num**(1/2)+1)):
if num % k == 0:
return False
return True
굳이 count==1을 하지 않고
return을 사용해서
중간에 나누어 떨어지면 False,
for문을 완수하면 나누어떨어진 것이 없다는 뜻이니까 True.
>> 불필요한 p_cnt를 추가하니 시간이 훨씬 더 걸림
* 참고: 진법 변환 정리
[python] 진법&자료형 변환 Casting 함수
진법 변환 Casting casting 캐스팅함수 = 강제적으로 변환 2진수(binary): 0b 혹은 0B 8진수(octal): 0o 혹은 0O 16진수(hex): 0x 혹은 0X >> 10진수로 출력됨 bin() : 10진수를 2진수로 변환 (0b~) oct() : 10진수를 8진수
dailystudy.tistory.com
'Programming > 코딩테스트' 카테고리의 다른 글
[코딩테스트 python] 해시 - 완주하지 못한 선수(효율성 개선) (0) | 2023.04.14 |
---|---|
[코딩테스트 python] 방향이 있는 그래프 순환 구조(DFS) (2) | 2023.04.13 |
[코딩테스트 python] 프로그래머스 이상한 문자 만들기 (0) | 2023.04.12 |
[코딩테스트 python] 프로그래머스 탐욕법(Greedy) (0) | 2023.04.11 |
[코딩테스트 python] 순서쌍의 개수(약수) (0) | 2023.04.05 |
Comments