Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Swift/Swift BASIC

[Swift] ์Šค์œ„ํ”„ํŠธ ์ •๋ ฌ sorted() ์™€ sort() ์ฐจ์ด์ 

๊ฐ์ž ๐Ÿฅ” 2022. 2. 19. 12:43
๋ฐ˜์‘ํ˜•

 

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฐ์—ด์ด๋‚˜ ๋ฌธ์ž์—ด ๋“ฑ์„ ์ •๋ ฌํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ sort ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š”๋ฐ์š”. sort()์™€ sorted() ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘๊ฐ€์ง€์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ์ž๊พธ์ž๊พธ ๊นŒ๋จน์–ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

 

1. sort(by: )

๋จผ์ € sort(by: ) ๋ฉ”์„œ๋“œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.  ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, sorted(by: >) ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

var arr = [133, 2, 321, 5423, 4]
arr.sort()
print(arr) // [2, 4, 133, 321, 5423]

arr.sort(by: >)
print(arr) // [5423, 321, 133, 4, 2]

sort() ๋ฉ”์„œ๋“œ๋Š” ์ œ์ž๋ฆฌ์—์„œ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— arr.sort()ํ•˜๋ฉด ์ •๋ ฌ๋œ ๋ฐฐ์—ด์ด ๋‹ค์‹œ return ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
(ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(nlogn)์ด๊ณ  n์€ collection์˜ ๊ธธ์ด)

 

2. sorted(by: )

sorted(by: ) ๋ฉ”์„œ๋“œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์„ ์ง€์›ํ•˜๋ฉฐ, sorted(by: >)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. sorted() ๋ฉ”์„œ๋“œ๋Š” ์ถ”๊ฐ€๋กœ, ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๋ฆฌํ„ดํ•ด์ค€๋‹ค๋Š” ์ ์—์„œ sort์™€ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

var arr = [133, 2, 321, 5423, 4]
arr.sorted()
print(arr) // [133, 2, 321, 5423, 4]

์œ„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด, sorted() ํ•ด์„œ ์ •๋ ฌ์„ ํ–ˆ์ง€๋งŒ, ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ return ๋งŒ ํ•˜๊ณ , arr ์ž์ฒด๋ฅผ ์ •๋ ฌํ•ด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— arr๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๋ฉด, ์ฒ˜์Œ์— ์ •์˜๋œ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ sorted() ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„ , ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์— ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

var arr = [133, 2, 321, 5423, 4]
var newArr = arr.sorted()
print(newArr) //[2, 4, 133, 321, 5423]

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” sort() ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

 

๋‹ค์‹œ ์ •๋ฆฌํ•˜์ž๋ฉด, sort() ๋Š” ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ์ •๋ ฌ, sorted() ๋Š” ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ์ƒˆ๋กญ๊ฒŒ ๋ฆฌํ„ด ํ•ด์คŒ. ์ด๋ ‡๊ฒŒ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, sort() ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐฐ์—ด์ž์ฒด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ sorted()๋Š” ๊ฐ’์„ ๋ณต์ œํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด์„œ ๋ฆฌํ„ดํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‘๋ฐฐ๋กœ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ์น˜๋ช…์ ์ธ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

์–ด๋–ค ์ƒํ™ฉ์—์„œ sorted / sort ๋ฅผ ์‚ฌ์šฉํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์˜ ์ฐจ์ด๋„ ๋ฐœ์ƒํ•˜๊ฒ ๋„ค์š”. 

 

๋ฐ˜์‘ํ˜•