Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Algorithm/Baekjoon

[๋ฐฑ์ค€] (Swift) 1748๋ฒˆ - ์ˆ˜ ์ด์–ด์“ฐ๊ธฐ 1 (๋‘๋ฒˆ์งธ ํ’€์ด)

๊ฐ์ž ๐Ÿฅ” 2023. 1. 5. 14:35
๋ฐ˜์‘ํ˜•

๐ŸŸ  ๋ฌธ์ œ

https://www.acmicpc.net/problem/1748

 

1748๋ฒˆ: ์ˆ˜ ์ด์–ด ์“ฐ๊ธฐ 1

์ฒซ์งธ ์ค„์— N(1 ≤ N ≤ 100,000,000)์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

๐ŸŸ  ๋‚˜์˜ ํ’€์ด

๊ทธ๋ƒฅ N์ž…๋ ฅ์„ ๋ฐ›์•„์„œ, 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋‹จ์ˆœํ•˜๊ฒŒ for๋ฌธ์œผ๋กœ ์ฆ๊ฐ€์‹œ์ผœ์ฃผ๋ฉด์„œ ํ•ด๋‹น ๊ธ€์ž๊ฐ€ ๋ช‡๊ธ€์ž์ธ์ง€ ํŒ๋‹จํ•ด์„œ answer๋กœ ๋”ํ•ด์ฃผ๋ ค๊ณ  ํ–ˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ์ƒ๊ฐํ•˜๋Š”,, ๊ทธ๋Ÿฐ 1์ฐจ์›์ ์ธ ๋ฐฉ์‹์œผ๋กœ

๊ทธ๋Ÿฐ๋ฐ, ํ•ด๋‹น ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์€ 0.15์ดˆ ์˜€๊ณ , ์ตœ๋Œ€๋กœ ์ฃผ์–ด์งˆ ์ˆ˜ ์žˆ๋Š” N์€ 1์–ต์ด์—ˆ๋‹ค. ๋ฐฑ์ค€์—์„œ ํ•œ ์—ฐ์‚ฐ์ด ๋Œ์•„๊ฐˆ๋•Œ 1์–ต๋ฒˆ๋Œ์•„๊ฐ€๋Š”๋ฐ 1์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ ‡๊ฒŒ ํ’€๋ฉด ๋ฌด์กฐ๊ฑด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๊ฒ ๋‹ค๋Š” ํŒ๋‹จ์ด ์„ฐ๋‹ค.

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์„๊นŒ?

์˜ˆ์ „์— ํ’€์–ด๋ณธ ๋ฌธ์ œ๋“ค์— ์˜ํ•˜๋ฉด, ์ž๋ฆฟ์ˆ˜๋ฅผ ํŒ๋‹จํ• ๋•Œ " % 10" ์„ ํ•˜์—ฌ ํŒ๋‹จํ–ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, 1234์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜์— ๋Œ€ํ•œ ์ถ”์ถœ์ด ํ•„์š”ํ•˜๋ฉด, %10 ํ•ด์„œ ๋‚˜๋จธ์ง€ 4, %100 ํ•˜๋ฉด ๋‚˜๋จธ์ง€ 34,, ์ด๋Ÿฐ์‹์œผ๋กœ! ๊ทธ๋ž˜์„œ 10์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ญ๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

์˜ˆ์ œ2๋กœ ์˜ˆ์‹œ๋ฅผ ๋“ค๋ฉด, 15๋ฅผ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด, 1๋ถ€ํ„ฐ 15๊นŒ์ง€์˜ ์ˆ˜์˜ ๋ชจ๋“  ์ž๋ฆฟ์ˆ˜๋ฅผ ๋”ํ•ด์•ผํ•œ๋‹ค. 
1๋ถ€ํ„ฐ 15๊นŒ์ง€๋Š ๋ชจ๋‘ 1์˜ ์ž๋ฆฌ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , 10๋ถ€ํ„ฐ 15๊นŒ์ง€๋งŒ ์‹ญ์˜์ž๋ฆฌ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ๊ณต์‹ํ™” ํ•  ์ˆ˜ ์žˆ์„๊นŒ

1๋ถ€ํ„ฐ 15๊นŒ์ง€ ์ผ์˜์ž๋ฆฌ ๊ฐฏ์ˆ˜ = 15๊ฐœ
1๋ถ€ํ„ฐ 15๊นŒ์ง€ ์‹ญ์˜์ž๋ฆฌ ๊ฐฏ์ˆ˜ = 6๊ฐœ

15 - 1 + 1 = 15
15 - 10 + 1 = 6

์ด 21๊ฐœ

์ด๋ ‡๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

1๋ถ€ํ„ฐ 15๊นŒ์ง€ ํ•œ์ž๋ฆฌ์ˆ˜์ธ 9๊ฐœ๋ฅผ ๋นผ์ฃผ๋ฉด, ์‹ญ์˜์ž๋ฆฌ๋ฅผ ๊ฐ€์ง„ ์ˆ˜์˜ ๊ฐฏ์ˆ˜์ธ 6์ด ๋„์ถœ๋œ๋‹ค.

 

๐ŸŸ  ์ •๋‹ต์ฝ”๋“œ

let N = Int(readLine()!)!
var i = 1
var answer = 0

while i <= N {
    answer += (N-i) + 1
    i *= 10
}

print(answer)
๋ฐ˜์‘ํ˜•