๐Ÿž 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์„ ๋นผ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.