๐ Daily Loaf/์๊ณ ๋ฆฌ์ฆ
[๋ธ๋ก ์ฆ3][Swift]๋ฐฑ์ค10810(Array)
BreadDev
2024. 10. 5. 18:19
728x90
https://www.acmicpc.net/problem/10810
๋ต์์ฝ๋
// N(๋ฐ๊ตฌ๋ ๊ฐ์)๊ณผ M(๊ณต์ ๋ฃ๋ ํ์) ์
๋ ฅ ๋ฐ๊ธฐ
let input = readLine()!.split(separator: " ").map { Int($0)! }
let N = input[0]
let M = input[1]
// ๋ฐ๊ตฌ๋ ์ด๊ธฐํ (1๋ถํฐ N๊น์ง์ ๋ฐ๊ตฌ๋, ์ด๊ธฐ์๋ ๋ชจ๋ ๋น์ด์์)
var baskets = Array(repeating: 0, count: N)
// M๋ฒ ๊ณต ๋ฃ๊ธฐ
for _ in 0..<M {
let operation = readLine()!.split(separator: " ").map { Int($0)! }
let i = operation[0] - 1 // ์์ ๋ฐ๊ตฌ๋ (0-based index๋ก ๋ณํ)
let j = operation[1] - 1 // ๋ ๋ฐ๊ตฌ๋ (0-based index๋ก ๋ณํ)
let k = operation[2] // ๋ฃ์ ๊ณต์ ๋ฒํธ
// i๋ฒ์งธ ๋ฐ๊ตฌ๋๋ถํฐ j๋ฒ์งธ ๋ฐ๊ตฌ๋๊น์ง k๋ฒ ๊ณต์ ๋ฃ์
for basket in i...j {
baskets[basket] = k
}
}
// ๊ฒฐ๊ณผ ์ถ๋ ฅ
print(baskets.map { String($0) }.joined(separator: " "))
- N(๋ฐ๊ตฌ๋ ๊ฐ์)๊ณผ M(๊ณต์ ๋ฃ๋ ํ์)์ ์ ๋ ฅ๋ฐ์ต๋๋ค.
- Array(repeating: 0, count: N)์ผ๋ก N๊ฐ์ ๋ฐ๊ตฌ๋๋ฅผ 0์ผ๋ก ์ด๊ธฐํํฉ๋๋ค. ์ฌ๊ธฐ์ 0์ ๋ฐ๊ตฌ๋๊ฐ ๋น์ด์์์ ์๋ฏธํฉ๋๋ค.
- M๋ฒ ๋ฐ๋ณตํ๋ฉด์ ๋ค์ ์์
์ ์ํํฉ๋๋ค:
- i, j, k๋ฅผ ์ ๋ ฅ๋ฐ์ต๋๋ค. (i: ์์ ๋ฐ๊ตฌ๋, j: ๋ ๋ฐ๊ตฌ๋, k: ๋ฃ์ ๊ณต์ ๋ฒํธ)
- i๋ถํฐ j๊น์ง์ ๋ฐ๊ตฌ๋์ k๋ฒ ๊ณต์ ๋ฃ์ต๋๋ค. (๊ธฐ์กด์ ์๋ ๊ณต์ ๋นผ๊ณ ์๋ก์ด ๊ณต์ ๋ฃ๋ ๊ฒ์ ๋๋ค)
- ์ต์ข
์ ์ผ๋ก ๊ฐ ๋ฐ๊ตฌ๋์ ๋ค์ด์๋ ๊ณต์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
- map { String($0) }์ผ๋ก ๊ฐ ์ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํฉ๋๋ค.
- joined(separator: " ")๋ก ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ๋ชจ๋ ๋ฌธ์์ด์ ์ฐ๊ฒฐํฉ๋๋ค.
์ฃผ์ํ ์ ์ ๋ฌธ์ ์์๋ ๋ฐ๊ตฌ๋์ ๊ณต์ ๋ฒํธ๊ฐ 1๋ถํฐ ์์ํ์ง๋ง, ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋ฏ๋ก ์ ๋ ฅ๋ฐ์ i์ j์์ 1์ ๋นผ์ฃผ์ด์ผ ํฉ๋๋ค.