๐ ๋ฐฐ์ด์ ๋ค์ํ ๋ฉ์๋
์ ๋ ฌ sort() sorted()
sort()๋ ๊ธฐ๋ณธ์ ์ผ๋ก '์๋ณธ ๋ฐฐ์ด'์ ๊ฐ์ง๊ณ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ํ๋ค.
๋ฌผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก๋ ์ ๋ ฌ์ด ๊ฐ๋ฅํ๋ค. ๋ง์ฝ, ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ํ๊ณ ์ถ๋ค๋ฉด, sort(by:)๋ฅผ ์ฌ์ฉํด์ sort(by:>)์ ๊ฐ์ด ์์ฑํด์ฃผ๋ฉด ๋๋ค.
sort(by:)๋ฅผ ์ฌ์ฉํด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ๋ ์๋ค. ๋ฐ๋ก sort(by:<)์ด๋ค. ๊ธฐ์กด์์ ">"๋ฐฉํฅ๋ง ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค.
ํ์ง๋ง, sort ํจ์์ default ๊ฐ์ด ์ค๋ฆ์ฐจ์์ด๊ธฐ ๋๋ฌธ์, sort(by:<)๋ฅผ ์ฌ์ฉํด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ์๋ ์๋ค.
์ฝ๋์์
var arr = [ 1, 5, 2, 4, 3 ]
// ๊ธฐ๋ณธ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
arr.sort()
print(arr) // [1, 2, 3, 4, 5]
// ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
arr.sort(by:>)
print(arr) // [5, 4, 3, 2, 1]
sorted()๋ sort์ ๋ค๋ฅด๊ฒ ์๋ณธ ๋ฐฐ์ด์ ๊ฑด๋๋ฆฌ์ง ์๊ณ , '์ฌ๋ณธ'์ ๋ง๋ค์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ ์ ๋ ฌ๋ ์์๋ฅผ ๋ฐํํด์ฃผ๋ ๋ฐฉ์์ด๋ค.
๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ๋ค๋ฉด, sortํจ์์ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก sorted(by:) ํจ์๋ฅผ ์ฌ์ฉํด์ sorted(by:>)๋ก ์์ฑํด์ฃผ๋ฉด ๋๋ค.
sort์ ๋์ผํ๊ฒ sorted()๋ง ์์ฑํด์ฃผ๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ค.
์ฝ๋์์
var arr = [ 1, 5, 2, 4, 3 ]
// ๊ธฐ๋ณธ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
var sotredArr = arr.sorted()
print(arr) // [1, 5, 2, 4, 3]
print(sortedArr) // [1, 2, 3, 4, 5]
// ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
var sortedArrDown = arr.sorted(by:>)
print(srtedArrDown) // [5, 4, 3, 2, 1]
sort & sorted ์ฐจ์ด์ ๊ณผ ์ฃผ์ํ ์
sort๋ '์๋ณธ ๋ฐฐ์ด'์์ฒด์ ์์๋ฅผ ๋ณ๊ฒฝํ๋ค๊ณ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด, ๊ธฐ์กด์ ๋ฐฐ์ด ์์๊ฐ ์ค์ํ ๊ฒฝ์ฐ์ sort๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น ?
๋น์ฐํ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ์๋ณธ ๋ฐฐ์ด์ ์์๊ฐ ์ค์ํ ์ํฉ์ธ๋ฐ, sort๋ฅผ ์ฌ์ฉํด์ ์๋ณธ ๋ฐฐ์ด์ ์์๊ฐ ๋ฐ๋์์ผ๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ๊ทธ๋ฌ๋ ๊ธฐ์กด์ ๋ฐฐ์ด ์์๊ฐ ์ค์ํ ๊ฒฝ์ฐ์๋ sort๋ฅผ ์ฌ์ฉํ์ง ์๋๊ฒ์ด ์ข๊ฒ ๋ค.
๋ํ, sorted๋ ์๋ณธ ๋ฐฐ์ด์ '๋ณต์ฌ๋ณธ'์ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
๊ฐ์ ๋ณต์ ํ์ฌ ์ฌ์ฉํ๋ ๋งํผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ๋์ 2๋ฐฐ๊ฐ ๋๋ค. ๊ฑฐ๊ธฐ๋ค sorted๋ฅผ ์ฌ์ฉํ๋ฉด ๊ทธ๋งํผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ ๋์ด๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ํฐ ์ฌ์ด์ฆ์ ๋ฐฐ์ด์์ ์ฌ์ฉํ๋ค๋ฉด ๊ทธ๋งํผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ฏ๋ก ์ฃผ์ํด์ผ ํ ๊ฒ์ด๋ค.
๋ค์ง๊ธฐ reverse() reversed()
๊ธฐ์กด ๋ฐฐ์ด์ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ค์ง๋ ๋ฐฉ๋ฒ์ reverse()๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ์๊ฐ๋ณต์ก๋๋ O(n)
var array = [1,3,5,2,4,6]
array.reverse()
print(array) // [6,4,2,5,3,1]
reversed()๋ ๊ธฐ์กด ๋ฐฐ์ด์ ๊ทธ๋๋ก ๋๊ณ ์์๊ฐ ๋ค์ง์ด์ง ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค. ์๊ฐ๋ณต์ก๋๋ O(1)
var array = [1,3,5,2,4,6]
array.reversed() // [6,4,2,5,3,1]
print(array) // [1,3,5,2,4,6]
์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ n๋งํผ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ ํ์ํ๊ฒ ์ง๋ง ๋น ๋ฅธ ์ํ์๊ฐ์ ์ํด์๋ reversed(0๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
'๐ ์ฝ๋ฉํ ์คํธ > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ReplacingOccurrences ( ๋ฌธ์์ด ์นํ ) (0) | 2023.11.02 |
---|---|
[Swift] Split , Components (0) | 2023.11.02 |
[Swift] Map, Filter, Reduce (1) | 2023.11.01 |
[Swift] prefix suffix (0) | 2023.11.01 |
[Swift] String ๋ค์ํ ํจ์ ์ ๋ฆฌ (0) | 2023.10.27 |