๐Ÿถ Programming/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€๊ธฐ

2022 KAKAO BLIND RECRUITEMENT Lv2. k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

์ง€ ์› 2022. 7. 7. 00:10

2022  KAKAO BLIND RECRUITEMENT 

Lv2. k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

 

๋ฌธ์ œ : https://programmers.co.kr/learn/courses/30/lessons/92335

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ”ธ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

n์„ k์ง„์ˆ˜๋กœ ๋ณ€ํ™˜.

0์œผ๋กœ ์ˆซ์ž์—ด์„ ๋‚˜๋ˆ”. ๋‚˜๋ˆ ์ง„ ์ˆซ์ž์ค‘ ์†Œ์ˆ˜์˜ ๊ฐฏ์ˆ˜๋ฅผ ์…ˆ.

 

def solution(n, k):
    #n์„ k์ง„์ˆ˜๋กœ ๋ณ€ํ™˜
    tran = trans(n,k)
    
    cnt = 0
    for i in tran.split('0'):
        if not i :
            continue
        if cal(int(i)):
            cnt += 1

    return cnt

#n์„ k์ง„์ˆ˜๋กœ ๋ณ€ํ™˜
def trans(n, k):
    trans = ""
    while n >= 1:
        if n == 1:
            trans = "1" + trans
            break
        else:
            trans = str(n%k) + trans
            n = n//k
    return trans

#์†Œ์ˆ˜๋งŒ ๋‚จ๊ธฐ๊ธฐ
def cal(i):
    if i <= 1:
        return False
    if i == 2:
        return True
    else:
        a = 2
        while a*a <= i:
            if i%a == 0:
                return False
            else:
                a += 1
        return True

 

๐Ÿ”‘ Key Point

๐Ÿ”ธ split(’0’)์„ ๋”ฐ๋กœ ์“ฐ์ง€ ์•Š๊ณ  for ๋ฌธ ์•„์—๋‹ค๊ฐ€ ์ผ์Œ → for i in list.split(’0’)

๐Ÿ”ธ k์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ, list ๊ฑฐ๊พธ๋กœ ์“ฐ๋Š” ๋ฐฉ๋ฒ• ์‚ฌ์šฉ ํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ์‹คํ–‰์‹œ๊ฐ„์ด ๊ธธ์–ด์ ธ์„œ ๋ฌธ์ž์—ด ์‚ฌ์šฉ์œผ๋กœ ๋ฐ”๊ฟˆ

๐Ÿ”ธ ๋ฌธ์ž์—ด ์‚ฌ์šฉํ•˜๊ณ  split()์„ ์‚ฌ์šฉํ•ด์„œ ๋’ค์— ๊ณต๋ฐฑ์ด ๋“ค์–ด๊ฐ€๋Š” case๊ฐ€ ์žˆ์Œ

๐Ÿ”ธ ๊ณต๋ฐฑ์ด ๋“ค์–ด๊ฐ€๋Š” case๋Š” if not i: continue ๋กœ ์ œ๊ฑฐ

๐Ÿ”ธ ๋งž๋Š” case๋งŒ list์— ๋‚จ๊ธฐ๊ณ  ๊ธธ์ด ์„ธ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ cnt ๋กœ ๋งž๋Š” ๊ฒฝ์šฐ๋งŒ True๋กœ return ํ•œ ํ›„์— ํ•˜๋‚˜์”ฉ ๋”ํ•ด์ฃผ๋Š”๊ฒŒ ๋” ๋น ๋ฅด๊ณ  ์ข‹์Œ

๐Ÿ”ธ k์ง„์ˆ˜ ๋ณ€ํ™˜ํ•  ๋•Œ ๋’ค์— ๋”ํ•ด๊ฐ€๋Š” ๊ฑด +๋กœ ํ•˜๋ฉด ์ˆซ์ž ์ทจ๊ธ‰ํ•ด์„œ ์ •๋ง๋กœ ๋”ํ•ด๋ฒ„๋ฆฌ๋‹ˆ๊นŒ.. ๋ฌธ์ž์—ด ์ทจ๊ธ‰ํ•ด์„œ!

๐Ÿ”ธ๋ชซ, ๋‚˜๋จธ์ง€ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜ N, V = divmod( n, k ) n⇒ ๋ชซ, v⇒๋‚˜๋จธ์ง€ // ํ•˜๋‚˜๋งŒ ํ•„์š”ํ• ๋• ๋‚˜๋จธ์ง€ ์ž๋ฆฌ์— N,_ ์ด๋‚˜ _,V ํ•˜๋ฉด ๋จ!