๊ณฑํ๊ธฐ ํน์ ๋ํ๊ธฐ (ebook๊ธฐ์ค p.315)
- ๊ฐ ์๋ฆฌ๊ฐ ์ซ์(0~9)๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด S ๊ฐ ์ฃผ์ด์ง
- ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๋์ฉ ๋ชจ๋ ์ซ์๋ฅผ ํ์ธํ์ฌ ์ซ์ ์ฌ์ด์ X ๋๋ + ์ฐ์ฐ์๋ฅผ ๋ฃ์ด ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ์ฅ ํฐ ์๋ก ๋ง๋ค์ด๋ด๊ณ ์ถ๋ค.
##### ์
๋ ฅ์์
- 02984๊ฐ ์ฃผ์ด์ง๋ฉด (0+2)*9*8*4 ๋ก ์ต๋๊ฐ 576์ด ์ถ๋ ฅ
- ์ต๋๊ฐ์ด 20์ต ์ดํ์ ์ ์๊ฐ ๋๋๋ก ์
๋ ฅ์ ์ค๊ฒ์ด๋ค
- ์ฒซ์จ์ค ์
๋ ฅ์ผ๋ก ์ซ์๋ก ๊ตฌ์ฑ๋ ํ๋์ ๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ง (1 <= s๊ธธ์ด <= 20)
<๋ด๊ฐ ํผ ์ฝ๋>
์ ์์ ์ผ๋ก ์ถ๋ ฅ์ด ๋๊ธดํ์ง๋ง, ๋ต์์ฝ๋๋ฅผ ๋ณด๊ณ ๋ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์์๋๋ค. ๋ด๊ฐ ์๊ฐ์ด ์กฐ๊ธ ์งง์๋ ํ์ ์กฐ๊ธ ์ฝ๋๊ฐ ๊ธธ์ด์ง ๊ฒ ๊ฐ๋ค. ํ๋ฒ๋ง ๋ ์๊ฐํ๋ค๋ฉด ๊ฐ์ ๊ตฌํ๋ฐฉ๋ฒ์ ๊ธธ์ด๊ฐ ์งง์ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์์์ํ ๋ฐ.. ์ญ์๋ ์์ง ๋ถ์กฑํ์ ์ด ๋ง๋ค. ๋ต์์ฝ๋๋ฅผ ์ฐธ๊ณ ํด์ ๊ณ ์น ๋์ ์ฝ๋๋ฅผ ์๋ ๋ถ์ฌ๋ฃ๊ฒ ๋ค.
s = '00000910'
def solution(s):
s = list(map(int, s))
first_num = s.pop(0)
while s:
num = s.pop(0)
# 0์ด๋ 1 ์ด๋ฉด ๊ณฑํ์ง๋ง๊ณ ๋ํด์ค์ผํจ
if num <= 1:
first_num += num
# ๊ทธ ์ด์์ ์ซ์๋ผ๋ฉด
else:
#์ฒ์ ์ฐ์ 0์ด ๋๋ฒ์ด์๋์ฌ์๋ ์์ผ๋
if first_num == 0 or first_num == 1:
first_num += num
else:
first_num *= num
return first_num
solution(s)
<๋ต์ ์ฝ๋์ ๋น๊ตํ๊ณ ์๋กญ๊ฒ ๊ณ ์น ์ฝ๋>
๋ ๊ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ณต์ก๋ ๋ฉด์์ ๋ ํจ์จ์ด ๋์ ์ฝ๋๊ฐ ๋ ๊ฒ์ด๋ค.
s = '01212'
def solution(s):
s = list(map(int, s))
first_num = s.pop(0)
while s:
num = s.pop(0)
# first_num๊ณผ num ๋์ค ํ๋๋ผ๋ 0์ด๊ฑฐ๋ 1์ด๋ฉด ๋ํด์ค
if first_num <= 1 or num <= 1:
first_num += num
# ๊ทธ๋ ์ง ์๋ค๋ฉด ๊ณฑํด์ค
else:
first_num *= num
return first_num
solution(s)
๋ค์ํ ์ผ์ด์ค๋ฅผ ๋ฃ์ด์ ํ ์คํธ๋ฅผ ํด๋ณด์๋๋ฐ, ์ฌ๋ฐ๋ฅธ ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๋ค.