Search
Duplicate

reduce()

์ƒ์„ฑ์ผ
2024/07/18 13:19
ํƒœ๊ทธ
Grammar

reduce()

reduce() ํ•จ์ˆ˜๋Š” Swift์˜ ์ปฌ๋ ‰์…˜ ํƒ€์ž…(๋ฐฐ์—ด, ๋”•์…”๋„ˆ๋ฆฌ, ์„ธํŠธ ๋“ฑ)์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์ฐจํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
โ€ข
์ด ํ•จ์ˆ˜๋Š” ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ถ•์•ฝํ•˜๋Š” ์—ญํ• 
reduce() ๋Š” ์ดˆ๊ธฐ๊ฐ’๊ณผ ๊ฒฐํ•ฉ ํด๋กœ์ €๋ฅผ ๋ฐ›์•„์„œ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ์— ๋Œ€ํ•ด ํด๋กœ์ €๋ฅผ ์ ์šฉํ•˜๊ณ , ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

reduce() ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ํ˜•ํƒœ

func reduce<Result>( _ initialResult: Result, // ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ์ดˆ๊ธฐ๊ฐ’, ์ถ•์•ฝ ์—ฐ์‚ฐ์˜ ์‹œ์ž‘์  _ nextPartialResult: (Result, Self.Element) throws -> Result ) rethrows -> Result
Swift
๋ณต์‚ฌ

์˜ˆ์ œ)

let numbers = [1, 2, 3, 4, 5] let sum = numbers.reduce(0) { (result, number) in result + number } print(sum) // ์ถœ๋ ฅ: 15
Swift
๋ณต์‚ฌ
let numbers = [1, 2, 3, 4, 5] let sum = numbers.reduce(0) { $0 + $1 } print(sum)
Swift
๋ณต์‚ฌ
โ†’ reduce ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์ธ ์ฝ”๋“œ๋กœ ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ๋“ค์„ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„ ์ฐจ์ด

for๋ฌธ๊ณผ reduce() ๋‘˜๋‹ค ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n)์„ ๋™์ผํ•˜๋‹ค.