์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Python

[BOJ/Step4] 1110 : ๋”ํ•˜๊ธฐ ์‚ฌ์ดํด (Python)

NaNaRin๐Ÿ™ƒ 2021. 2. 2. 20:29

www.acmicpc.net/problem/1110

 

1110๋ฒˆ: ๋”ํ•˜๊ธฐ ์‚ฌ์ดํด

0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 99๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 10๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์•ž์— 0์„ ๋ถ™์—ฌ ๋‘ ์ž๋ฆฌ ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋”ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ,

www.acmicpc.net


๋ฌธ์ œ

0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 99๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 10๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์•ž์— 0์„ ๋ถ™์—ฌ ๋‘ ์ž๋ฆฌ ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋”ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ, ์ฃผ์–ด์ง„ ์ˆ˜์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์ž๋ฆฌ ์ˆ˜์™€ ์•ž์—์„œ ๊ตฌํ•œ ํ•ฉ์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์ž๋ฆฌ ์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์ด๋ฉด ์ƒˆ๋กœ์šด ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ์˜ˆ๋ฅผ ๋ณด์ž.

26๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. 2+6 = 8์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 68์ด๋‹ค. 6+8 = 14์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 84์ด๋‹ค. 8+4 = 12์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 42์ด๋‹ค. 4+2 = 6์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 26์ด๋‹ค.

์œ„์˜ ์˜ˆ๋Š” 4๋ฒˆ๋งŒ์— ์›๋ž˜ ์ˆ˜๋กœ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ 26์˜ ์‚ฌ์ดํด์˜ ๊ธธ์ด๋Š” 4์ด๋‹ค.

N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, N์˜ ์‚ฌ์ดํด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 99๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— N์˜ ์‚ฌ์ดํด ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1

26

 

์˜ˆ์ œ ์ถœ๋ ฅ 1

4

 

์˜ˆ์ œ ์ž…๋ ฅ 2

55

 

์˜ˆ์ œ ์ถœ๋ ฅ 2

3

 

์˜ˆ์ œ ์ž…๋ ฅ 3

1

 

์˜ˆ์ œ ์ถœ๋ ฅ 3

60

 

์˜ˆ์ œ ์ž…๋ ฅ 4

0

 

์˜ˆ์ œ ์ถœ๋ ฅ 4

1


ํ’€์ด

์ฒ˜์Œ์— ์ด๋ ‡๊ฒŒ ํ’€์—ˆ๋Š”๋ฐ ๋ญ”๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ต๊ณ  ๊ตณ์ด ์ด๋ ‡๊ฒŒ str์ด๋ž‘ int๋ฅผ ์™”๋‹ค๊ฐ”๋‹ค ํ•ด์•ผ๋˜๋‚˜ ์‹ถ์–ด์„œ

# 1110.py

n = int(input())
nn = n
count = 0

while True:
    if nn == n and count != 0:
        break
    if int(n) < 10:
        n = int(str(n) * 2)
        count += 1
    else:
        n = str(n)
        a = str(int(n[0]) + int(n[1]))
        if int(a) < 10:
            n = n[1] + a[0]
        else:
            n = n[1] + a[1]
        n = int(n)
        count += 1

print(count)

 

๊ทธ๋ƒฅ int๋กœ๋งŒ ํ’€์—ˆ๋‹ค

# 1110.py

n = int(input())
nn = n
count = 0

while True:
    if nn == n and count != 0:
        break
    a = n // 10
    b = n % 10
    c = a + b
    n = int(str(b) + str(c % 10))
    count += 1

print(count)

 

์กฐ๊ฑด์ด ์ค„๊ณ  ์ข€ ๋” ๊ฐ„๋‹จํ•ด์ง„๊ฑฐ ๊ฐ™๊ธด ํ•œ๋ฐ ์‹œ๊ฐ„์€ ๋น„์Šทํ•˜๊ฒŒ ๋‚˜์˜ค๋”๋ผ

์ž๋ฐ”๋ž‘ ๋น„๊ตํ•˜๋ฉด ์‹œ๊ฐ„์ด ๊ฑฐ์˜ 1/4๋กœ ์ค„์—ˆ๋‹ค ใ„ทใ„ท