๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3๏ธโƒฃ Swift/Swift ์ •๋ฆฌ

[Swift] ๋ฐฐ์—ด ๊ด€๋ จ ํ•จ์ˆ˜ ์ด์ •๋ฆฌ!

by seolhee2750 2021. 7. 15.

์Šค์œ„ํ”„ํŠธ๋Š” ์—†๋Š” ํ•จ์ˆ˜๊ฐ€ ์—†๋‹ค,, ํ•จ์ˆ˜๋“ค์„ ์ž˜ ์ˆ™์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฉด ๋„ˆ๋ฌด ํŽธํ•˜๋‹ค ์ •๋ง๋ฃจ

๋”ฐ๋ผ์„œ ์˜ค๋Š˜๋ถ€ํ„ฐ ํ•จ์ˆ˜๋“ค์„ ๋ณด๊ธฐ์ข‹๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ตฌํ•œ๋‹ค.

์ƒ๊ฐ๋‚˜๋Š”๋Œ€๋กœ ๊ณ„์† ์ถ”๊ฐ€ํ•  ์˜ˆ์ •!

(์—ฌ๊ธฐ์—” ํ•จ์ˆ˜๋“ค์„ ๋ชจ๋‘ ๊ธฐ๋กํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ณ„ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋”ฐ๋กœ ๊ธ€์„ ์—…๋กœ๋“œํ•˜๊ฒ ๋‹ค.)

 

๐Ÿ“Œ ์ •๋ ฌ

๐Ÿ‘‰ sorted, sort, reverse

var arr1 = [1, 2, 5, 4, 3]
var arr2 = [1, 2, 5, 4, 3]
var arr3 = [1, 2, 5, 4, 3]

arr1.sorted() // ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ (์˜ค๋ฆ„์ฐจ์ˆœ์ด default๋ผ์„œ ๋นˆ ๊ด„ํ˜ธ ๊ฐ€๋Šฅ)
arr1.sorted(by: <) // ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
arr1.sorted(by: >) // ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
arr2.sorted(){$0 > $1} // ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
arr2.sorted{$0 > $1} // ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
// [1, 2, 3, 4, 5]
// [1, 2, 3, 4, 5]
// [5, 4, 3, 2, 1]
// [1, 2, 3, 4, 5]
// [5, 4, 3, 2, 1]
// ๊ธฐ์กด ๋ฐฐ์—ด์— ๋ฐ˜์˜x, ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ๋ฐฐ์—ด

arr3.sort()
print(arr3)
arr3.reverse()
print(arr3)
// [1, 2, 3, 4, 5]
// [1, 2, 3, 4, 5]
// [5, 4, 3, 2, 1]
// [5, 4, 3, 2, 1]
// sort๋Š” sorted์™€ ๋‹ค๋ฅด๊ฒŒ ๊ธฐ์กด ๋ฒ ์—ด์— ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค.

 

 

 

๐Ÿ“Œ ๊ฒ€์ƒ‰

๐Ÿ‘‰ prefix, suffix, contains, startIndex, endIndex, firstIndex, lastIndex, first, last, min, max

var arr4 = [1, 2, 5, 4, 3]
var arr5 = [1, 2, 2, 3, 3, 4, 5]

arr4.prefix(2) // ์•ž์—์„œ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ ์š”์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ
arr4.suffix(2) // ๋’ค์—์„œ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ ์š”์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ
// [1, 2]
// [4, 3]
// ๊ธฐ์กด ๋ฐฐ์—ด์— ๋ฐ˜์˜x, ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ๋ฐฐ์—ด

arr5.contains(2) // ์›ํ•˜๋Š” ์š”์†Œ์˜ ์กด์žฌ ์—ฌ๋ถ€ ๊ฒ€์ƒ‰
// false
// ๋ฐ˜ํ™˜ ํƒ€์ž…์€ Bool

arr5.startIndex // ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค ์œ„์น˜
arr5.endIndex // ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค ์œ„์น˜ + 1 (๋ฐฐ์—ด์˜ ๊ธธ์ด์™€ ๊ฐ™์Œ)
arr5.firstIndex(of: 2) // ์›ํ•˜๋Š” ์š”์†Œ์˜ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ์œ„์น˜ ๊ฒ€์ƒ‰
arr5.lastIndex(of: 3) // ์›ํ•˜๋Š” ์š”์†Œ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์œ„์น˜ ๊ฒ€์ƒ‰
// 0
// 7
// 1
// 4
// ๋ฐ˜ํ™˜ ํƒ€์ž…์€ Int

arr5.first // ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ๊ฒ€์ƒ‰
arr5.last // ๋งˆ์ง€๋ง‰ ์š”์†Œ ๊ฒ€์ƒ‰
// 1
// 5

arr5.min() // ๋ฐฐ์—ด์˜ ์ตœ์†Ÿ๊ฐ’ ๊ฒ€์ƒ‰
arr5.max() // ๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’ ๊ฒ€์ƒ‰
// 1
// 5
// ๋ฐ˜ํ™˜์€ ์˜ต์…”๋„

// (ํ•จ์ˆ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ• ์ถ”๊ฐ€,,!)
arr5[1...3] // ๋ฐฐ์—ด ์œ„์น˜ ๋ฒ”์œ„๋กœ ์š”์†Œ ๊ฒ€์ƒ‰
arr5[1...3] = [0, 0, 0] // ์ด๋ ‡๊ฒŒ ์ˆ˜์ •๋„ ๊ฐ€๋Šฅ!
print(arr5)
// [2, 3, 4]
// [0, 0, 0]
// [1, 0, 0, 0, 3, 4, 5]

 

 

 

๐Ÿ“Œ  ๋ฐฐ์—ด์˜ ๊ธธ์ด

๐Ÿ‘‰ count

var arr6 = [1, 2, 5, 4, 3]

arr6.count // 5
// ๋ฐ˜ํ™˜ ํƒ€์ž…์€ Int

 

 

๐Ÿ“Œ  ์‚ฝ์ž…

๐Ÿ‘‰ append, insert

var arr7 = [1, 2, 3]

arr7.append(5) // ๋ฐฐ์—ด ๋งจ ๋’ค์— ์ถ”๊ฐ€
arr7.insert(4, at: 3) // ์›ํ•˜๋Š” ์œ„์น˜์— ์‚ฝ์ž…
// [1, 2, 3, 5]
// [1, 2, 3, 4, 5]
// ๊ธฐ์กด ๋ฐฐ์—ด์— ๋ฐ˜์˜, ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ๋ฐฐ์—ด

 

 

๐Ÿ“Œ ์‚ญ์ œ

๐Ÿ‘‰ remove, removeLast, removeFirst, removeAll, dropFirst, dropLast

var arr8 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var arr9 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

arr8.remove(at: 2) // ์›ํ•˜๋Š” ์œ„์น˜์˜ ์š”์†Œ ์ œ๊ฑฐ
print(arr8)
arr8.removeLast() // ๋งˆ์ง€๋ง‰ ์š”์†Œ ์ œ๊ฑฐ
print(arr8)
arr8.removeFirst() // ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์ œ๊ฑฐ
print(arr8)
// 3
// [1, 2, 4, 5, 6, 7, 8, 9, 10]
// 10
// [1, 2, 4, 5, 6, 7, 8, 9]
// 1
// [2, 4, 5, 6, 7, 8, 9]
// ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ์‚ญ์ œํ•˜๋ ค๋Š” ์š”์†Œ! ์‚ญ์ œ๋œ ๋ฐฐ์—ด ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ ์•„๋‹˜.


arr8.removeLast(1) // ๋’ค์—์„œ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ ์š”์†Œ ์ œ๊ฑฐ
print(arr8)
arr8.removeFirst(2) // ์•ž์—์„œ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ ์š”์†Œ ์ œ๊ฑฐ
print(arr8)
arr8.removeAll() // ๋ชจ๋“  ์š”์†Œ ์ œ๊ฑฐ
print(arr8)
// [2, 4, 5, 6, 7, 8]
// [2, 4, 5, 6, 7, 8]
// [5, 6, 7, 8]
// [5, 6, 7, 8]
// []
// []
// ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ์‚ญ์ œ ์™„๋ฃŒํ•œ ๋ฐฐ์—ด! ์‚ญ์ œ ์š”์†Œ ๋ฐ˜ํ™˜x


arr9.dropFirst() // ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์ œ๊ฑฐ
arr9.dropLast() // ๋งˆ์ง€๋ง‰ ์š”์†Œ ์ œ๊ฑฐ
print(arr9)
// [2, 3, 4, 5, 6, 7, 8, 9, 10]
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

arr9.dropFirst(2) // ์•ž์—์„œ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ ์š”์†Œ ์ œ๊ฑฐ
arr9.dropLast(3) // ๋’ค์—์„œ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ ์š”์†Œ ์ œ๊ฑฐ
print(arr9)
// [3, 4, 5, 6, 7, 8, 9, 10]
// [1, 2, 3, 4, 5, 6, 7]
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

// ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ์ œ๊ฑฐ ์™„๋ฃŒํ•œ ๋ฐฐ์—ด
// remove์™€ ๋‹ค๋ฅธ ์ ์€, ์ œ๊ฑฐ ๋™์ž‘์ด ํ•ด๋‹น ๋ฐฐ์—ด์—๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ!

 

 

๐Ÿ“Œ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

๐Ÿ‘‰ joined

var arr10 = [1, 2, 3, 4, 5].map{String($0)}

arr10.joined() // String ๋ฐฐ์—ด์„ String์œผ๋กœ ๋ณ€ํ™˜
arr10.joined(separator: "*") // ์›ํ•˜๋Š” ๊ตฌ๋ถ„์ž๋ฅผ ๋„ฃ์–ด String์œผ๋กœ ๋ณ€ํ™˜
// "12345"
// "1*2*3*4*5"
// ๋ฐ˜ํ™˜์€ String

(joined ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ์€ ์š”๊ธฐ๐Ÿ‘‡๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!)

2021.06.13 - [๐Ÿ“ Swift Note/๐Ÿ“ Quick Note] - [Swift Quick Note] sorted, joined ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ!

 

[Swift Quick Note] sorted, joined ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ!

๋‚ด๊ฐ€ ๋ฌธ์ž์—ด ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ sorted์™€ joined๋ฅผ ํ•จ๊ป˜ ์“ฐ๋ ค๊ณ  ํ•˜๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๊ทผ๋ฐ ๊ทธ ์ด์œ ๋ฅผ ๋„๋Œ€์ฒด ์•Œ ์ˆ˜๊ฐ€ ์—†์–ด์„œ ํ•œ์ฐธ์„ ๊ณ ๋ฏผํ–ˆ๋‹ค,, ๊นจ๋‹ซ๊ณ  ๋‚˜๋‹ˆ ๊ฐ„๋‹จํ•œ ๋‚ด์šฉ์ด์—ˆ์ง€๋งŒใ…œ ์•ž์œผ๋กœ

seolhee2750.tistory.com

 

 

๐Ÿ“Œ 2์ฐจ์› ๋ฐฐ์—ด์„ 1์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜

๐Ÿ‘‰ flatMap

var arr11 = [[1, 2, 3], [4, 5]]

var arr12 = arr11.flatMap({$0})
print(arr11)
print(arr12)
// [[1, 2, 3], [4, 5]]
// [1, 2, 3, 4, 5]
// ๋ณ€ํ™˜ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์›๋ž˜ ๋ฐฐ์—ด์— ๋ฐ˜์˜x

 

๋Œ“๊ธ€