๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿž Daily Loaf/์•Œ๊ณ ๋ฆฌ์ฆ˜

[๋ธŒ๋ก ์ฆˆ2][Swift]๋ฐฑ์ค€10813

by BreadDev 2024. 10. 7.
728x90

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

 

๋‹ต์•ˆ์ฝ”๋“œ

// N(๋ฐ”๊ตฌ๋‹ˆ ๊ฐœ์ˆ˜)๊ณผ M(๊ณต์„ ๋ฐ”๊พธ๋Š” ํšŸ์ˆ˜) ์ž…๋ ฅ ๋ฐ›๊ธฐ
let input = readLine()!.split(separator: " ").map { Int($0)! }
let N = input[0]
let M = input[1]

// ๋ฐ”๊ตฌ๋‹ˆ ์ดˆ๊ธฐํ™” (1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ ํžŒ ๊ณต)
var baskets = Array(1...N)

// M๋ฒˆ ๊ณต ๋ฐ”๊พธ๊ธฐ
for _ in 0..<M {
    let swap = readLine()!.split(separator: " ").map { Int($0)! }
    let i = swap[0] - 1  // ์ฒซ ๋ฒˆ์งธ ๋ฐ”๊ตฌ๋‹ˆ (0-based index๋กœ ๋ณ€ํ™˜)
    let j = swap[1] - 1  // ๋‘ ๋ฒˆ์งธ ๋ฐ”๊ตฌ๋‹ˆ (0-based index๋กœ ๋ณ€ํ™˜)
    
    // i๋ฒˆ์งธ ๋ฐ”๊ตฌ๋‹ˆ์™€ j๋ฒˆ์งธ ๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ณต์„ ๊ตํ™˜
    let temp = baskets[i]
    baskets[i] = baskets[j]
    baskets[j] = temp
}

// ๊ฒฐ๊ณผ ์ถœ๋ ฅ
print(baskets.map { String($0) }.joined(separator: " "))
  • temp๋ผ๋Š” ์ž„์‹œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ baskets[i]์˜ ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • baskets[i]์— baskets[j]์˜ ๊ฐ’์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • baskets[j]์— temp(์›๋ž˜ baskets[i]์˜ ๊ฐ’)๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
swapAt ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๊ฒฐํ• ์ˆ˜์žˆ์–ด์š”
// i๋ฒˆ์งธ ๋ฐ”๊ตฌ๋‹ˆ์™€ j๋ฒˆ์งธ ๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ณต์„ ๊ตํ™˜
baskets.swapAt(i, j)