1. ๋ฌธ์ ์ค๋ช
- ์
๋ ฅ
- k: k์ง์
- n: ์์ ์ ์
- ์ถ๋ ฅ : ์์์ ๊ฐ์
2. ์ฝ๋
import math
def convert(n, base):#n:10์ง์ base: ์ง์ k
T = "0123456789ABCDEF"
q, r = divmod(n, base)
if q == 0:
return T[r]
else:
return convert(q, base) + T[r]
def solution(n, k):
n = convert(n,k)
count = 0
check = True
for num in n.split('0'):
if num != '' and num != '1': #๋น๊ฐ์ด ์๋๊ณ 1์ด ์๋ ๋
num = int(num)
#์์์ธ์ง ๊ฒ์ฌ
for i in range(2,int(math.sqrt(num))+1):
if num % i == 0: #๋๋์ด๋จ์ด์ง๋ ์๊ฐ ์์ผ๋ฉด
check = False #์์๊ฐ ์๋
break
if check: #check๊ฐ True๋ผ๋ฉด
count +=1 #์์๋๊น +1
return count
3. ํ๊ณ
- 10์ง์๋ฅผ k์ง์๋ก ๋ณํํ ํ, ์กฐ๊ฑด์ ๋ง๋ ์์์ ๊ฐ์๋ฅผ ์ฐพ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- 10์ง์๋ฅผ k์ง์๋ก ๋ณํํ๊ธฐ
- ์ฌ๊ทํจ์๋ฅผ ํตํด ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค
- ๋ชซ์ด 0์ด ๋ ๋๊น์ง ๋๋จธ์ง๋ฅผ ๊ตฌํด์ผํ๋ฉฐ ์ด ๊ณผ์ ์์ ๋์จ ๋๋จธ์ง๋ค์ ์ญ์์ผ๋ก ๊ฒฐํฉํด์ผํ๋ค.
- ์์๊ตฌํ๊ธฐ
- for num in n.split('0')
- 0์ ๊ธฐ์ค์ผ๋ก ์๋ผ์ ์ซ์๋ค์ด ์์์ธ์ง ๊ฒ์ฌ
- ๋น๋ฌธ์์ด์ด ๋์ฌ ์๋ ์์ผ๋ฏ๋ก ์กฐ๊ฑด๋ฌธ์ ํตํด ์ ์ธ์ํค๊ธฐ :if num != '
- 1์ด๋ฉด ์์๊ฐ ์๋๋ฏ๋ก ์ ์ด์ count ๋์์์ ์ ์ธ : num != '1'
- ์์์ธ์ง ๊ฒ์ฌ
- range(2, n + 1) ๋ก ํ์ ์๊ฐ ์ด๊ณผ
- ์ฝ์์ ํน์ง์ ์ด์ฉํด์ ๋ฐ๋ณต๋ฌธ์ ํ์๋ฅผ ์ค์ฌ์ฃผ๋ ๊ฒ์ด ๊ฐ๋ฅ
- range(2,int(math.sqrt(num))+1) ๋ก ๋ณ๊ฒฝ
- ๋ฒ์ 2 ~ N์์ N์ ์ ๊ณฑ๊ทผ๊ฐ๋ณด๋ค ์์ ๋ถ๋ถ๋ค์ ๋ํ ์ฒ๋ฆฌ๊ฐ ๋๋๋ฉด, ์ ๊ณฑ๊ทผ๊ฐ๋ณด๋ค ํฐ ๋ถ๋ถ์ ๊ฐ ๋ํ ์ฒ๋ฆฌ๊ฐ ๋๋ค๋ ๋ง
- for num in n.split('0')
4. ์ฐธ๊ณ
https://seongonion.tistory.com/43
https://codingdojang.com/scode/458
'Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๊ดด๋์ง ์์ ๊ฑด๋ฌผ (Python) (0) | 2022.02.22 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํ ํธ์ง (Python) (0) | 2022.02.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] n์ง์ ๊ฒ์ (Python) (0) | 2022.02.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ (Python) (0) | 2022.02.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ (Python) (0) | 2022.02.12 |