dev/algorithm
BOJ / 1110๋ฒ / ๋ํ๊ธฐ ์ฌ์ดํด [Go] [Python3]
crscnt
2020. 4. 2. 21:00
๐ฉ๐ป๐ป ๋ฌธ์
1110๋ฒ: ๋ํ๊ธฐ ์ฌ์ดํด
0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 99๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง ๋ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ํ ์ ์๋ค. ๋จผ์ ์ฃผ์ด์ง ์๊ฐ 10๋ณด๋ค ์๋ค๋ฉด ์์ 0์ ๋ถ์ฌ ๋ ์๋ฆฌ ์๋ก ๋ง๋ค๊ณ , ๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ๋ค. ๊ทธ ๋ค์, ์ฃผ์ด์ง ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์์ ์์์ ๊ตฌํ ํฉ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์๋ฅผ ์ด์ด ๋ถ์ด๋ฉด ์๋ก์ด ์๋ฅผ ๋ง๋ค ์ ์๋ค. ๋ค์ ์๋ฅผ ๋ณด์. 26๋ถํฐ ์์ํ๋ค. 2+6 = 8์ด๋ค. ์๋ก์ด ์๋ 68์ด๋ค. 6+8 = 14์ด๋ค. ์๋ก์ด ์๋ 84์ด๋ค. 8+4 =
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var n, cycle int
reader := bufio.NewReader(os.Stdin)
fmt.Fscanln(reader, &n)
var newN = n
for true {
cycle++
var sum int
if newN/10 == 0 {
sum = newN
} else {
sum = newN/10 + newN%10
}
newN = newN%10*10 + sum%10
if newN == n {
break
}
}
fmt.Println(cycle)
}
๐จ Python3
import sys
n = int(sys.stdin.readline())
cycle = 0
new_n = n
while True:
new_n = (new_n%10)*10 + (int(new_n/10) + new_n%10)%10
cycle = cycle + 1
if new_n == n:
break
print(cycle)
728x90