Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 거리두기확인하기
- 섬연결하기
- 구현
- javascript
- 도넛과막대그래프
- DP
- 위상정렬
- [1차]캐시
- 트리의지름
- 파이썬
- 그래프탐색
- 다익스트라
- 자물쇠와열쇠
- 프로그래머스
- 파괴되지않은건물
- 알고리즘
- 백준
- 벽부수고이동하기
- 17404
- 최소스패닝트리
- DFS
- 프림알고리즘
- 이모티콘할인행사
- 최단경로
- BFS
- 큐
- 두큐합같게만들기
- RGB거리2
- 사이클게임
- 징검다리건너기
Archives
- Today
- Total
블로그 이름 뭐로 하지
[알고리즘] 프로그래머스 - k진수에서 소수 개수 구하기 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/92335
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
단순 구현으로 풀었다. 예전에도 풀었던 문제라서...! 특정 진수로 변환하는 법을 까먹어서 검색해서 풀었다.. ㅎ 기억 좀 하자
현재 숫자를 원하는 진수로 나눈 나머지 값을 str형태로 넣어주고 n은 해당 진수로 나눈 몫으로 바꾼다. n이 있을 때까지 반복 ... => 그렇게 탄생한 str을 거꾸로 돌려주면 원하는 진수로 변환된 값이 나옴!
당연하지만 소수인지 확인할 땐 1부터 해당 숫자까지 for문을 돌리면서 나머지 확인하지 말고 제곱근(sqrt)+1 까지만 돌려주면 된다.
코드
import math
def solution(n, k):
answer = 0
if k==10:
num=str(n)
else:
tmp = ''
while n:
tmp += str(n % k)
n = n // k
num=tmp[::-1]
new_list=list(num.split('0'))
for i in new_list:
tmp_num=0
if i=='':
continue
for j in range(2,int(math.sqrt(int(i))) + 1):
if int(i)%j==0:
tmp_num+=1
if tmp_num>2:
break
if i!='1' and tmp_num==0:
answer+=1
return answer
'알고리즘' 카테고리의 다른 글
[알고리즘/파이썬] 백준 2096 - 내려가기 (2) | 2024.01.13 |
---|---|
[알고리즘/파이썬] 백준 1191 - 트리순회 (1) | 2024.01.13 |
[알고리즘] 프로그래머스 - 문자열 압축 (0) | 2024.01.11 |
[알고리즘] 백준 1987 - 알파벳 (1) | 2024.01.10 |
[알고리즘] 프로그래머스 - 괄호 변환 (0) | 2024.01.09 |