Bibi's DevLog ๐Ÿค“๐ŸŽ

[Swift] Array ๋ฐฐ์—ด : ๋’ค์ง‘๊ธฐ - reversed() / ์ž๋ฆฌ๋ฐ”๊พธ๊ธฐ swapAt(_:_:) ๋ณธ๋ฌธ

๐Ÿ“ฑ๐ŸŽ iOS/๐Ÿ Apple Developer Documentation

[Swift] Array ๋ฐฐ์—ด : ๋’ค์ง‘๊ธฐ - reversed() / ์ž๋ฆฌ๋ฐ”๊พธ๊ธฐ swapAt(_:_:)

๋น„๋น„ bibi 2023. 1. 19. 17:21

Apple Developer Documentation

reversed()

  • ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ทฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
func reversed() -> ReversedCollection<Data>
  • ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค
    • String ๋ฌธ์ž์—ด๋„ ๋ฐฐ์—ด์ด๋ฏ€๋กœ ๋’ค์ง‘์„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹ค๋งŒ ๋ฆฌํ„ดํƒ€์ž…์ด ๋ฐฐ์—ด์ด ์•„๋‹Œ ReversedCollection์ด๋ฏ€๋กœ, ํ•„์š”ํ•˜๋‹ค๋ฉด Array๋‚˜ String์œผ๋กœ ํ˜•๋ณ€ํ™˜ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
    • ์›๋ž˜ ํƒ€์ž…์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•˜๋ ค๋ฉด, ์ปฌ๋ ‰์…˜์˜ sequence-based ๋˜๋Š” collection-based ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ReversedCollection์€ ์ปฌ๋ ‰์…˜์„ ๋ž˜ํ•‘ํ•˜๊ณ , ์š”์†Œ์— ์—ญ์ˆœ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค.
let word = "Backwards"
for char in word.reversed() {
    print(char, terminator: "")
}
// Prints "sdrawkcaB"

โœ… ์‹œ๊ฐ„๋ณต์žก๋„ : O(1)


swapAt(::)

Apple Developer Documentation

์ปฌ๋ ‰์…˜์—์„œ ์ง€์ •๋œ ์ธ๋ฑ์Šค์˜ ๊ฐ’๋“ค์„ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค.

mutating func swapAt(
    _ i: Self.Index,
    _ j: Self.Index
)
  • i : ์ž๋ฆฌ๋ฅผ ๋ฐ”๊ฟ€ ์ฒซ ๋ฒˆ์งธ ๊ฐ’์˜ ์ธ๋ฑ์Šค.
  • j : ์ž๋ฆฌ๋ฅผ ๋ฐ”๊ฟ€ ๋‘ ๋ฒˆ์งธ ๊ฐ’์˜ ์ธ๋ฑ์Šค.

๋‘ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ชจ๋‘ ์ปฌ๋ ‰์…˜์—์„œ ์œ ํšจํ•œ ์ธ๋ฑ์Šค์—ฌ์•ผ ํ•˜๋ฉฐ, endIndex์™€ ๋‹ค๋ฅธ ๊ฐ’์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. i ์™€ j ์˜ ๊ฐ’์ด ๊ฐ™์„ ๋•Œ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ์•„๋ฌด๋Ÿฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

โœ… ์‹œ๊ฐ„๋ณต์žก๋„ : O(1)