๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/์ด์ฝ”ํ…Œ

[์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค] ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๊ณฑํ•˜๊ธฐ ํ˜น์€ ๋”ํ•˜๊ธฐ

 

๋ฌธ์ œ 

 

๊ฐ ์ž๋ฆฌ๊ฐ€ ์ˆซ์ž(0๋ถ€ํ„ฐ 9)๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ํ™•์ธํ•˜๋ฉฐ ์ˆซ์ž ์‚ฌ์ด์— '' ํ˜น์€ '+' ์—ฐ์‚ฐ์ž๋ฅผ ๋„ฃ์–ด ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋‹จ, +๋ณด๋‹ค ๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ๋ชจ๋“  ์—ฐ์‚ฐ์€ ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด 02984๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๋ฉด, ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ์ˆ˜๋Š” ((((0+2)9)8)*4) = 576 ์ž…๋‹ˆ๋‹ค.

 

 

 

ํ•ด์„ค ์ฝ”๋“œ 

data=input()

result = int(data[0])

for i in range(1, len(data)):
   #๋‘ ์ˆ˜ ์ค‘์—์„œ ํ•˜๋‚˜๋ผ๋„ '0' ํ˜น์€ '1'์ธ ๊ฒฝ์šฐ, ๊ณฑํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋”ํ•˜๊ธฐ ์ˆ˜ํ–‰
   num= int(data[i])
   if num <= 1 or result <= 1:
     result += num
   else:
     result *= num
print(result)

 

 

์˜ค๋‹ต ์ด์œ 

 

์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ์–ด๋–ค์‹์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์•ผ ํ•˜๋Š”์ง€ ๊ฐ์„ ์žก์ง€ ๋ชปํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”์„œ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋Š”๋ฐ ์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๊ณต๋ถ€ํ–ˆ๋‹ค ๋ณด๋‹ˆ, ํŒŒ์ด์ฌ์€ ๋ฌธ์ž์—ด์—๋„ index๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊นŒ๋จน์—ˆ๋‹ค. ๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์–ด๋–ค์‹์œผ๋กœ ๊ณฑํ•˜๊ธฐ, ๋”ํ•˜๊ธฐ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์ด์— ๋„ฃ์–ด์•ผ ํ•˜๋‚˜์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•˜๋‹ค๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ’€์ง€ ๋ชปํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘ ์ˆ˜ ์ค‘์—์„œ ํ•˜๋‚˜๋ผ๋„ '0' ์ด๊ฑฐ๋‚˜ '1'์ผ ๋•Œ ๋”ํ•˜๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ ๋‘ ๊ฐœ๋ฅผ ๊ณจ๋ผ ์ด๋ฅผ ๋”ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๊ณฑํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. 

 

 

ํ•ด์„ค ์ฝ”๋“œ ๋ถ„์„

 

ํ•ด์„ค ์ฝ”๋“œ์˜ ์ „๊ฐœ ๊ณผ์ •์€ ํฌ๊ฒŒ ์ด๋ ‡๊ฒŒ ๋‚˜๋‰œ๋‹ค. 

1. ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์˜ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ(S[0])๋ฅผ result๊ฐ’์— ๋„ฃ๋Š”๋‹ค. 
2. ์ฒซ ๋ฒˆ์งธ ๊ฐ’์„ ์ œ์™ธํ•œ (๋‘๋ฒˆ์งธ ~ ๋ฌธ์ž์—ด์˜ ๋๊นŒ์ง€)๋ฅผ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๋ฉฐ ์ด ๋•Œ ๊ฐ ๋น„๊ต ์›์†Œ๋Š” num์ด ๋œ๋‹ค.
3. result ๊ฐ’์ด 1๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ฑฐ๋‚˜ num๊ฐ’์ด 1๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ result = result + num ์ด ๋œ๋‹ค. 
4. ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ์—๋Š” result = result * num ์ด ๋œ๋‹ค. 

 

 

๊นจ๋‹ฌ์€ ์ 

 

-  ๋ฌธ์ž์—ด์—๋„ index๊ฐ€ ์žˆ๋‹ค. ๋ฌด์ž‘์ • ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ํ•˜์ง€๋ง์ž. 

-  ๋ฌด์ž‘์ • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•˜์ง€๋ง๊ณ , ์ „๊ฐœ ๊ณผ์ •์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ •ํ•œ ๋’ค์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ž.