๐ ๋ฐฑ์ค 1110 - ๋ํ๊ธฐ ์ฌ์ดํด
๋ฐฑ์ค 1110 - ๋ํ๊ธฐ ์ฌ์ดํด
โก๏ธ ๋์ ํ์ด
๋ฌธ์ ์ ์กฐ๊ฑด๋๋ก ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์ ์ธ๋ฐ, n
๋ฒ ์ฌ์ดํด์ ๋๊ณ ๋์ ์๋์ ์์ ๊ฐ์์ง๋ ์กฐ๊ฑด์์ ์๋ชป ๋ฃ์ด์ ์กฐ๊ธ ํค๋งธ๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก ์ฒ์ ์
๋ ฅ์ ์๋ก์ด ๋ณ์ check
๋ก ์ ์ธํ๊ณ ์ ์ผ ๋ง์ง๋ง์ ๋์จ ๊ฐ๊ณผ ๋น๊ตํด์ฃผ๋ฉด ๋๋ค.
๋, ์ฒ์ ์กฐ๊ฑด์ ์ฃผ์ด์ง ์๊ฐ 10๋ณด๋ค ์์ผ๋ฉด ์์ 0์ ๋ถ์ธ๋ค๊ณ ๋์์๋๋ฐ, ์ฌ์ค ์ด ์กฐ๊ฑด์ ์์ด๋ ๋๋ ์กฐ๊ฑด์ด๋ค. ์๋ฅผ ๋ค์ด ์ฒ์ ์ฃผ์ด์ง ์๊ฐ 5
๋ผ๊ณ ํ ๋, ์์ 0
์ ๋ถ์ฌ์ฃผ๊ณ ๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ๋ฉด 0+5
๊ฐ ๋๋๋ฐ, 0
์ ์์ผ๋ ์์ผ๋ ๊ฐ์ ๊ฐ์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ํด๋น ์กฐ๊ฑด์ ๊ฑด๋๋ฐ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ฌ๋ด์ด์ง๋ง ๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ๊ทํจ์
๋ฅผ ์ด์ฉํด์10์ผ๋ก ๋๋ ๋ชซ
๊ณผ10์ผ๋ก ๋๋ ๋๋จธ์ง
๋ฅผ์ผ์ ์๋ฆฟ์๊ฐ
๋ ๋๊น์ง ๋ํ๊ธฐmap
ํจ์๋ฅผ ์ด์ฉํด์str
๋ก ๋ฐ๊พธ๊ณsum
ํจ์๋ก ํ ๋ฒ์ ๋ํ๊ธฐ๋ฐ๋ณต๋ฌธ
์ ์ด์ฉํด์str
๋ก ๋ฐ๊พธ๊ณ ํ๋์ฉ ๋ํ๊ธฐ
n = 123
# 1. ์ฌ๊ทํจ์
def sum_digit(n):
if n < 10:
return n
return n % 10 + sum_digit(n // 10)
print(sum_digit(n))
๐๐ฝ 6
# 2. map ํจ์
result = sum(map(int, str(n)))
print(result)
๐๐ฝ 6
# 3. ๋ฐ๋ณต๋ฌธ
temp = 0
for i in str(n):
temp += int(i)
print(temp)
๐๐ฝ 6
์๋ก์ด ์ new_n
์ ๊ตฌํ ๋ 10์ผ๋ก ๋๋๋ ๋ฐฉ๋ฒ
๊ณผ ๋ฌธ์์ด์ธ๋ฑ์ฑ
์ผ๋ก ์ ์ผ ๋ง์ง๋ง์ ๊ฐ๋ง ๋ผ ์ค๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๋ฐ, ๋ฉ๋ชจ๋ฆฌ๋ 28776KB
๋ก ๋์ผํ๊ณ ์คํ์๊ฐ์ด 64m/s
, 72m/s
๋ก 10์ผ๋ก ๋๋๋ ๋ฐฉ๋ฒ
์ด 8m/s
๋ก ๊ทผ์ํ๊ฒ ๋นจ๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
n = int(input())
check = n
flag = True
cnt = 0
# 10์ผ๋ก ๋๋๋ ๋ฐฉ๋ฒ
while flag:
temp = int(n) // 10 + int(n) % 10
new_n = str(n % 10) + str(temp % 10)
cnt += 1
if int(new_n) == check:
flag = False
n = int(new_n)
print(cnt)
# ๋ฌธ์์ด ์ธ๋ฑ์ฑ ์ด์ฉํ ๋ฐฉ๋ฒ
while flag:
temp = int(n) // 10 + int(n) % 10
new_n = str(n)[-1] + str(temp)[-1]
cnt += 1
if int(new_n) == check:
flag = False
n = new_n
print(cnt)
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 9625 - BABBA (0) | 2021.05.21 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 4396 - ์ง๋ขฐ (2) | 2021.05.20 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 7568 - ๋ฉ์น (0) | 2021.05.18 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 4673 - ์ ํ ๋๋ฒ (0) | 2021.05.18 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1977 - ์์ ์ ๊ณฑ ์ (0) | 2021.05.17 |
๋๊ธ