๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

swift230

[Swift] Escaping Closure ์ด์Šค์ผ€์ดํ•‘ ํด๋กœ์ €(Escaping Closure)escaping ํด๋กœ์ €๋Š” ํด๋กœ์ €๊ฐ€ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋์„ ๋•Œ, ํ•จ์ˆ˜์˜ ์‹คํ–‰์ด ์ข…๋ฃŒ๋œ ํ›„ ์‹คํ–‰๋˜๋Š” ํด๋กœ์ €ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž… ์•ž์— @escaping ์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•จ์ด์Šค์ผ€์ดํ•‘ ํด๋กœ์ €์—์„œ๋Š” self๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์–ธ๊ธ‰ํ•ด์•ผ ํ•จ์ด์Šค์ผ€์ดํ•‘ ํด๋กœ์ €๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ๋กœ๋Š” ๋น„๋™๊ธฐ๋กœ ์‹คํ–‰๋˜๋Š” HTTP Request CompletionHandler์ด ์žˆ์Œvar completionHandlers: [() -> Void] = []func someFunctionWithEscapingClosure(completionHandler: @escaping () -> Void) { completionHandlers.append(completionHandler)} Non-Escaping .. 2023. 5. 20.
[Swift] ๋ฐฑ์ค€ 1874๋ฒˆ - ์Šคํƒ ์ˆ˜์—ด ๋ฐฑ์ค€ ๋ฌธ์ œ ๋ชจ์Œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/1874 1874๋ฒˆ: ์Šคํƒ ์ˆ˜์—ด 1๋ถ€ํ„ฐ n๊นŒ์ง€์— ์ˆ˜์— ๋Œ€ํ•ด ์ฐจ๋ก€๋กœ [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ˆ˜์—ด [4, 3, 6, 8, 7, 5, 2, 1]์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. www.acmicpc.net ๋ฌธ์ œ ์Šคํƒ (stack)์€ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘ ํ•˜๋‚˜๋กœ, ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๋•Œ ์ž์ฃผ ์ด์šฉ๋˜๋Š” ๊ฐœ๋…์ด๋‹ค. ์Šคํƒ์€ ์ž๋ฃŒ๋ฅผ ๋„ฃ๋Š” (push) ์ž…๊ตฌ์™€ ์ž๋ฃŒ๋ฅผ ๋ฝ‘๋Š” (pop) ์ž…๊ตฌ๊ฐ€ ๊ฐ™์•„ ์ œ์ผ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ์ž๋ฃŒ๊ฐ€ ์ œ์ผ ๋จผ์ € ๋‚˜์˜ค๋Š” (LIFO, Last in First out) ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ .. 2023. 3. 29.
[Swift] ๋ฐฑ์ค€ 10773๋ฒˆ - ์ œ๋กœ ๋ฐฑ์ค€ ๋ฌธ์ œ ๋ชจ์Œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/10773 10773๋ฒˆ: ์ œ๋กœ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ 100,000) ์ดํ›„ K๊ฐœ์˜ ์ค„์— ์ •์ˆ˜๊ฐ€ 1๊ฐœ์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ •์ˆ˜๋Š” 0์—์„œ 1,000,000 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ •์ˆ˜๊ฐ€ "0" ์ผ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ณ , ์•„๋‹ ๊ฒฝ www.acmicpc.net ๋ฌธ์ œ ๋‚˜์ฝ”๋” ๊ธฐ์žฅ ์žฌ๋ฏผ์ด๋Š” ๋™์•„๋ฆฌ ํšŒ์‹์„ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์žฅ๋ถ€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์ด๋‹ค. ์žฌํ˜„์ด๋Š” ์žฌ๋ฏผ์ด๋ฅผ ๋„์™€์„œ ๋ˆ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์ธ๋ฐ, ์• ์„ํ•˜๊ฒŒ๋„ ํ•ญ์ƒ ์ •์‹ ์—†๋Š” ์žฌํ˜„์ด๋Š” ๋ˆ์„ ์‹ค์ˆ˜๋กœ ์ž˜๋ชป ๋ถ€๋ฅด๋Š” ์‚ฌ๊ณ ๋ฅผ ์น˜๊ธฐ ์ผ์‘ค์˜€๋‹ค. ์žฌํ˜„์ด๋Š” ์ž˜๋ชป๋œ ์ˆ˜๋ฅผ ๋ถ€๋ฅผ ๋•Œ๋งˆ๋‹ค 0์„ ์™ธ์ณ์„œ, ๊ฐ€์žฅ ์ตœ๊ทผ์— ์žฌ๋ฏผ์ด๊ฐ€ ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ฒŒ ์‹œํ‚จ๋‹ค. ์žฌ๋ฏผ์ด๋Š” ์ด๋ ‡๊ฒŒ ๋ชจ๋“  ์ˆ˜๋ฅผ ๋ฐ›์•„.. 2023. 3. 29.
[Swift] ๋ฐฑ์ค€ 1406๋ฒˆ - ์—๋””ํ„ฐ ๋ฐฑ์ค€ ๋ฌธ์ œ ๋ชจ์Œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/1406 1406๋ฒˆ: ์—๋””ํ„ฐ ์ฒซ์งธ ์ค„์—๋Š” ์ดˆ๊ธฐ์— ํŽธ์ง‘๊ธฐ์— ์ž…๋ ฅ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์€ ๊ธธ์ด๊ฐ€ N์ด๊ณ , ์˜์–ด ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 100,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ž…๋ ฅํ•  ๋ช…๋ น์–ด์˜ ๊ฐœ์ˆ˜ www.acmicpc.net ๋ฌธ์ œ ํ•œ ์ค„๋กœ ๋œ ๊ฐ„๋‹จํ•œ ์—๋””ํ„ฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ด ํŽธ์ง‘๊ธฐ๋Š” ์˜์–ด ์†Œ๋ฌธ์ž๋งŒ์„ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ์ง‘๊ธฐ๋กœ, ์ตœ๋Œ€ 600,000๊ธ€์ž๊นŒ์ง€ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํŽธ์ง‘๊ธฐ์—๋Š” '์ปค์„œ'๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋Š”๋ฐ, ์ปค์„œ๋Š” ๋ฌธ์žฅ์˜ ๋งจ ์•ž(์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์˜ ์™ผ์ชฝ), ๋ฌธ์žฅ์˜ ๋งจ ๋’ค(๋งˆ์ง€๋ง‰ ๋ฌธ์ž์˜ ์˜ค๋ฅธ์ชฝ), ๋˜๋Š” ๋ฌธ์žฅ ์ค‘๊ฐ„ ์ž„์˜์˜ ๊ณณ(๋ชจ๋“  ์—ฐ์†๋œ ๋‘ ๋ฌธ์ž ์‚ฌ์ด)์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ๊ธธ์ด๊ฐ€ L์ธ ๋ฌธ์ž.. 2023. 3. 27.
[Swift] ๋ฐฑ์ค€ 3273๋ฒˆ - ๋‘ ์ˆ˜์˜ ํ•ฉ ๋ฐฑ์ค€ ๋ฌธ์ œ ๋ชจ์Œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/3273 3273๋ฒˆ: ๋‘ ์ˆ˜์˜ ํ•ฉ n๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์–‘์˜ ์ •์ˆ˜ a1, a2, ..., an์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์žˆ๋‹ค. ai์˜ ๊ฐ’์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1000000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ž์—ฐ์ˆ˜ x๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ai + aj = x (1 ≤ i < j ≤ n)์„ ๋งŒ์กฑํ•˜๋Š” www.acmicpc.net ๋ฌธ์ œ n๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์–‘์˜ ์ •์ˆ˜ a1, a2,..., an์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์žˆ๋‹ค. ai์˜ ๊ฐ’์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1000000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ž์—ฐ์ˆ˜ x๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ai + aj = x (1 ≤ i 2023. 3. 26.
[Swift] ๋ฐฑ์ค€ 1475๋ฒˆ - ๋ฐฉ ๋ฒˆํ˜ธ ๋ฐฑ์ค€ ๋ฌธ์ œ ๋ชจ์Œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/1475 1475๋ฒˆ: ๋ฐฉ ๋ฒˆํ˜ธ ์ฒซ์งธ ์ค„์— ๋‹ค์†œ์ด์˜ ๋ฐฉ ๋ฒˆํ˜ธ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ๋ฌธ์ œ ๋‹ค์†œ์ด๋Š” ์€์ง„์ด์˜ ์˜†์ง‘์— ์ƒˆ๋กœ ์ด์‚ฌ ์™”๋‹ค. ๋‹ค์†œ์ด๋Š” ์ž๊ธฐ ๋ฐฉ ๋ฒˆํ˜ธ๋ฅผ ์˜ˆ์œ ํ”Œ๋ผ์Šคํ‹ฑ ์ˆซ์ž๋กœ ๋ฌธ์— ๋ถ™์ด๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด์˜ ์˜†์ง‘์—์„œ๋Š” ํ”Œ๋ผ์Šคํ‹ฑ ์ˆซ์ž๋ฅผ ํ•œ ์„ธํŠธ๋กœ ํŒ๋‹ค. ํ•œ ์„ธํŠธ์—๋Š” 0๋ฒˆ๋ถ€ํ„ฐ 9๋ฒˆ๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•˜๋‚˜์”ฉ ๋“ค์–ด์žˆ๋‹ค. ๋‹ค์†œ์ด์˜ ๋ฐฉ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ•„์š”ํ•œ ์„ธํŠธ์˜ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค. (6์€ 9๋ฅผ ๋’ค์ง‘์–ด์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ณ , 9๋Š” 6์„ ๋’ค์ง‘์–ด์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.) ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋‹ค์†œ์ด์˜ ๋ฐฉ ๋ฒˆํ˜ธ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž.. 2023. 3. 26.
๋ฐ˜์‘ํ˜•