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

[๋ธŒ๋ก ์ฆˆ2][Swift]๋ฐฑ์ค€10811๋ฒˆ(reverse)

by BreadDev 2024. 10. 7.
728x90

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

 

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

let input = readLine()!.split(separator: " ").map { Int($0)! }
let N = input[0]
let M = input[1]

var baskets = Array(1...N)

for _ in 0..<M {
    let range = readLine()!.split(separator: " ").map { Int($0)! }
    let i = range[0] - 1
    let j = range[1] - 1
    baskets[i...j].reverse()
}

print(baskets.map { String($0) }.joined(separator: " "))
  • let input = readLine()!.split(separator: " ").map { Int($0)! }:
    • ์ฒซ ๋ฒˆ์งธ ์ค„์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๊ณต๋ฐฑ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ฐ ๋ถ€๋ถ„์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • !๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ•์ œ ์–ธ๋ž˜ํ•‘ํ•˜๋Š” ๊ฒƒ์€ ์ž…๋ ฅ์ด ํ•ญ์ƒ ์œ ํšจํ•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ๋งŒ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
  • let N = input[0], let M = input[1]:
    • ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์—์„œ N(๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ฐœ์ˆ˜)๊ณผ M(์—ญ์ˆœ ์ž‘์—…์˜ ํšŸ์ˆ˜)์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  • var baskets = Array(1...N):
    • 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ดˆ๊ธฐ ๋ฐ”๊ตฌ๋‹ˆ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • for _ in 0..<M {:
    • M๋ฒˆ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฃจํ”„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฐ˜๋ณต์—์„œ ์—ญ์ˆœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • let range = readLine()!.split(separator: " ").map { Int($0)! }:
    • ๊ฐ ์—ญ์ˆœ ์ž‘์—…์˜ ๋ฒ”์œ„๋ฅผ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • let i = range[0] - 1, let j = range[1] - 1:
    • ์ž…๋ ฅ๋ฐ›์€ ๋ฒ”์œ„๋ฅผ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค(1์„ ๋นผ์ค๋‹ˆ๋‹ค).
  • baskets[i...j].reverse():
    • i๋ถ€ํ„ฐ j๊นŒ์ง€์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ์—ญ์ˆœ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • print(baskets.map { String($0) }.joined(separator: " ")):
    • ์ตœ์ข… ๋ฐ”๊ตฌ๋‹ˆ ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•œ ์ค„์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
๋ฐฐ์—ด์˜ ๋ถ€๋ถ„ ๋ฒ”์œ„๋ฅผ ์—ญ์ˆœ์œผ๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ํ•ด์•ผ๋˜๋Š”๋ฐ Swift์˜ reverse() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.