MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 1748๋ฒˆ: ์ˆ˜ ์ด์–ด ์“ฐ๊ธฐ 1 ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ - 1748๋ฒˆ: ์ˆ˜ ์ด์–ด ์“ฐ๊ธฐ 1

MUKER 2023. 7. 12. 10:52
๋ฌธ์ œ ๋งํฌ
 

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

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

www.acmicpc.net


๋ฌธ์ œ

1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์ด์–ด์„œ ์“ฐ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒˆ๋กœ์šด ํ•˜๋‚˜์˜ ์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

1234567891011121314151617181920212223...

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์ƒˆ๋กœ์šด ์ˆ˜๋Š” ๋ช‡ ์ž๋ฆฌ ์ˆ˜์ผ๊นŒ? ์ด ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

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

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ƒˆ๋กœ์šด ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ


์„ฑ๊ณต ํ’€์ด

var n = Int(readLine()!)!
let cnt = String(n).count
var result = 0
var now = 9
for i in 1...cnt {
    if i==cnt { result += n*cnt }
    else {
        n -= now
        result += now * i
        now *= 10
    }
}
print(result)

ํ’€์ด ํ‚ค์›Œ๋“œ

  • 1~9๋Š” 9๊ฐœ, 10~99๋Š” 90๊ฐœ, 100~999๋Š” 900๊ฐœ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ 3์ž๋ฆฌ์˜ ์ˆซ์ž์˜ ์ด์–ด์ง„ ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด ํ•œ์ž๋ฆฟ์ˆ˜์˜ ์ˆซ์ž 9๊ฐœ ๋‘ ์ž๋ฆฟ์ˆ˜์˜ ์ˆซ์ž 90๊ฐœ ๊ทธ๋ฆฌ๊ณ  ์„ธ ์ž๋ฆฟ์ˆ˜์˜ ์ˆซ์ž ์ฆ‰ ์ฃผ์–ด์ง„ ์ˆซ์ž์—์„œ 9+99๋ฅผ ๋บ€ ๋‚˜๋จธ์ง€ ์ˆซ์ž๋ฅผ ์„ธ ์ž๋ฆฟ์ˆ˜์˜ ์ˆซ์ž๋กœ ๊ณ„์‚ฐํ•ด ๋‹ต์„ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค.