1์ด ๋  ๋•Œ๊นŒ์ง€- ์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค

2020. 9. 2. 18:45ใ†์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค/๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜

1์ด ๋  ๋•Œ๊นŒ์ง€- ์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค

 

๋ฌธ์ œ :

์–ด๋– ํ•œ ์ˆ˜ N์ด 1์ด ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ์˜ ๋‘ ๊ณผ์ • ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์„ ํƒํ•˜์—ฌ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋‹จ, ๋‘ ๋ฒˆ์งธ ์—ฐ์‚ฐ์€ N์ด K๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์งˆ ๋•Œ๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

    1. N์—์„œ 1์„ ๋บ€๋‹ค.

    2. N์„ K๋กœ ๋‚˜๋ˆˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด N์ด 17, K๊ฐ€ 4๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด๋•Œ 1๋ฒˆ์˜ ๊ณผ์ •์„ ํ•œ ๋ฒˆ ์ˆ˜ํ–‰ํ•˜๋ฉด N์€ 16์ด ๋œ๋‹ค. ์ดํ›„์— 2๋ฒˆ์˜ ๊ณผ์ •์„ ๋‘ ๋ฒˆ ์ˆ˜ํ–‰ํ•˜๋ฉด N์€ 1์ด ๋œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด ๊ฒฝ์šฐ ์ „์ฒด ๊ณผ์ •์„ ์‹คํ–‰ํ•œ ํšŸ์ˆ˜๋Š” 3์ด ๋œ๋‹ค. ์ด๋Š” N์„ 1๋กœ ๋งŒ๋“œ๋Š” ์ตœ์†Œ ํšŸ์ˆ˜์ด๋‹ค. 

N๊ณผ K๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ N์ด 1์ด ๋  ๋•Œ๊นŒ์ง€ 1๋ฒˆ ํ˜น์€ 2๋ฒˆ์˜ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ ์กฐ๊ฑด:

  • ์ฒซ์งธ ์ค„์— N(2<=N<=100,000)๊ณผ K(2<=K<=100,000)๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ ๊ฐ๊ฐ ์ž์—ฐ์ˆ˜๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” N์€ ํ•ญ์ƒ K๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

์ถœ๋ ฅ ์กฐ๊ฑด:

  • ์ฒซ์งธ ์ค„์— N์ด 1๋  ๋•Œ๊นŒ์ง€ 1๋ฒˆ ํ˜น์€ 2๋ฒˆ์˜ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

๋ฌธ์ œ ํ•ด์„ค:

1. N์ด K๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์งˆ ๋–„ or N์ด K๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€์ง€ ์•Š์„ ๋•Œ๋กœ ๋‚˜๋ˆˆ๋‹ค.

2. ๋ฐ˜๋ณตํ•œ๋‹ค.

 

n,k = map(int,input().split())

count =0
while n!=1:
  if n%k==0:
    n = n//k
    count+=1
  else :
    n = n-1
    count+=1


print(count)

 

๋‹ค์Œ์€ N์ด K์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋„๋ก ํšจ์œจ์ ์œผ๋กœ ํ•œ ๋ฒˆ์— ๋นผ๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ด๋ฅผ ์ตํ˜€๋‘๋ฉด ์ข‹๋‹ค.

 

n,k= map(int,input().split())
result =0

while True:
  target = (n//k)*k
  result += n-target
  n = target
  if n<k:
    break
  result+=1
  n = n//k
  
result += (n-1)
print(result)