๋ชฉ๋กiOS [Swift]/์•Œ๊ณ ๋ฆฌ์ฆ˜ (23)

Focus On Develop ๐ŸคŸ๐ŸคŸ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ž…์ถœ๋ ฅ ์˜ˆ์ œ๋ฅผ ๋ณด์ง€ ์•Š์œผ๋ฉด ๋Œ€๋ถ€๋ถ„ ์‘?? 3์ง„๋ฒ•์ด ๋ญ๋”๋ผ?? ํ•  ๊ฒƒ ๊ฐ™๋‹ค ใ…‹ใ…‹ (์ €๋งŒ ๊ทธ๋ž˜์š”?? ๋ ์šฉ ๐Ÿ‘€) ๊ทธ๋ž˜์„œ ๋ฌธ์ œ์— ์ž…์ถœ๋ ฅ ์˜ˆ์ œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค..ํ•˜ํ•˜..ใ…‹ ์•”ํŠผ ์ผ๋‹จ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด, 3์œผ๋กœ ๊ณ„์† ๋‚˜๋ˆ„๋ฉด์„œ ๋ชซ์ด 3๋ณด๋‹ค ์ž‘์•„์ง€๊ธฐ ์ „๊นŒ์ง€ ๊ณ„~์† ๋‚˜๋ˆ„๊ณ .. ๊ทธ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ๋‚˜๋จธ์ง€(0, 1, 2 ๊ฒ ์ฃ !?)๋ฅผ ๊ฑฐ๊พธ๋กœ ์ญ‰~ ์ด์–ด ๋ถ™์ด๋ฉด 3์ง„๋ฒ• ํ‘œํ˜„์ด ๋œ๋‹ค. ๋ณดํ†ต 10์ง„์ˆ˜๋ฅผ ๋‹ค๋ฅธ ์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋ฉด ์ˆœ์„œ๊ฐ€ ๋ฐ˜์ „๋œ ์ง„์ˆ˜๋กœ ํ‘œํ˜„๋˜์„œ, ์˜ฌ๋ฐ”๋ฅธ ์ง„๋ฒ• ํ‘œ๊ธฐ๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฒฐ๊ตญ์€ reverse์ž‘์—…์„ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ.. ์ด ๋ฌธ์ œ๋Š” ๋ฌธ์ œ์—์„œ ํ•œ๋ฒˆ ๋’ค์ง‘์œผ๋ผ๊ณ  ํ•˜๋„ค? ใ…‹ใ…‹ ๊ฟ€~~๐Ÿ‘๐Ÿ‘ (์–ด์ฐจํ”ผ ์ฝ”๋“œ๋Š” ํ•œ์ค„์ด์ง€๋งŒ ใ…‹ใ…‹) ๊ทธ๋Ÿฐ ํ›„์— 3์ง„์ˆ˜๋ฅผ 10์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•˜๋ ค๋ฉด, ์ œ์ผ ์ž‘์€์ž๋ฆฌ(์ œ์ผ ์šฐ์ธก) ๋ถ€ํ„ฐ 3์˜ 0์ œ๊ณฑx..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 2016๋…„

์ด ๋ฌธ์ œ๋Š” ๋งค๋‹ฌ ๋ช‡์ผ๊นŒ์ง€ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š”๊ฒŒ ํฌ์ธํŠธ๋‹ค.. (๋‹ค๋“ค ์ฃผ๋จน์ง€๊ณ  ํฐ๋‹ฌ ์ž‘์€๋‹ฌ ์•„์‹œ์ฅฌ..!?ใ…‹ใ…‹๐Ÿ˜) ์—์ด~ ์ฝ”๋”ฉ์ธ๋ฐ ์š”์ผ ๊ตฌํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ์žˆ์„๊นŒ? ๋ผ๊ณ  ์ ‘๊ทผํ•˜๋ฉด ์–ด๋ ค์›Œ์ง„๋‹ค.. "๋งค๋‹ฌ ๋ช‡์ผ๊นŒ์ง€ ์žˆ๋Š”์ง€ ์ฝ”๋“œ๊ฐ€ ์•Œ๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค"๋ฅผ ๋ช…์‹ฌํ•˜์ž. ํ•˜๋“œ์ฝ”๋”ฉ์ด ์•„๋‹ˆ๋‹ˆ๊นŒ ์•ˆ์‹ฌํ•˜์ž..ใ…‹ใ…‹ ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด 1์›”1์ผ์ด ๊ธˆ์š”์ผ์ด๋‹ˆ๊นŒ ์š”์ผ์€ ๊ธˆ~๋ชฉ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , 1์›” 1์ผ๋ถ€ํ„ฐ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ๋‚ ์งœ๊นŒ์ง€ ์ด ์ผ์ˆ˜ % 7๋กœ ๊ตฌํ•˜๋ฉด ๋  ๋“ฏ ํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ ํ•œ๊ฐ€์ง€ ์ฃผ์˜ํ•ด์•ผ ํ• ์ ์€, ์˜ˆ๋ฅผ๋“ค์–ด 1์›”2์ผ์ด๋ผ๊ณ  "์ผ์ˆ˜"๊ฐ€ 2๊ฐ€๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ 1์ด๋œ๋‹ค๋Š” ์ ์ด๋‹ค.ใ…‹ (-1์„ ์žŠ์ง€๋ง์ž) let days31: [Int] = [1, 3, 5, 7, 8, 10, 12] let days30: [Int] = [4, 6, 9, 11] let..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ

3๋ช…์˜ ์ˆ˜ํฌ์ž์˜ ๋‹ต์•ˆ์ œ์ถœ ํŒจํ„ด์„ ์•Œ๋ ค์ฃผ๊ณ , ์ •๋‹ต์ด ์ฃผ์–ด์กŒ์„๋•Œ ๋ˆ„๊ฐ€ ์ œ์ผ ๋งŽ์ด ๋‹ต์„ ๋งž์ท„๋‚˜? ํ•˜๋Š” ๋ฌธ์ œ๊ณ , ์ˆ˜ํฌ์ž๋“ค์ด ๋™์ผํ•œ ์ ์ˆ˜๋ฅผ ์Šต๋“ํ–ˆ๋‹ค๋ฉด ์ตœ๊ณ  ๋“์ ์ž๊ฐ€ ์—ฌ๋Ÿฌ๋ช…์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ ์ƒ๊ฐํ•ด๋ด์•ผ ํ•  ํฌ์ธํŠธ๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. 1) ์ •๋‹ต๊ณผ ๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด์„ ์–ด๋–ป๊ฒŒ ๋น„๊ตํ• ์ง€์™€, 2) ์ง‘๊ณ„๋œ ์ ์ˆ˜๋กœ ์ตœ๊ณ ๋“์ ์ž ๋ฐฐ์—ด์€ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์ง€? ์šฐ์„  ๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด์€.. ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ํŒจํ„ด์˜ ๋ฐ˜๋ณต๋˜๋Š” ๋‹จ์œ„์˜ ๊ฐฏ์ˆ˜(์œ„ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ 5๊ฐœ, 8๊ฐœ, 10๊ฐœ)์— ๋Œ€ํ•œ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์•Œ๋ฉด, ์ •๋‹ต์„ ํ•œ๋ฒˆ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ํŒจํ„ด์„ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฒŒ๋” ํ•˜๋Š”๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ ์ƒ๊ฐ์„ ์กฐ๊ธˆ๋งŒ ์‘์šฉํ•ด๋ณด๋ฉด, ์ •๋‹ต ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•˜๋Š” ๋™์•ˆ ๊ทธ์‹œ์ ์˜ Index๋ฅผ ๊ฐ ํŒจํ„ด ๋‹จ์œ„์˜ ๊ฐฏ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ฐพ์•„๋ฒ„๋ฆฌ๋ฉด ๋”ฐ๋กœ ๊ณ„์‚ฐํ•˜์ง€ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฒด์œก๋ณต

์šฐ์„  ์ œํ•œ์‚ฌํ•ญ์„ ๋ณด๋ฉด ์ „์ฒด Input์˜ ์ˆ˜๋Š” ํฌ์ง€ ์•Š์•„์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๋Š” ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์ง€๋Š” ์•Š๋‹ค. ๋„๋‚œ๋‹นํ•œ ํ•™์ƒ, ์—ฌ๋ฒŒ์˜ ์ฒด์œก๋ณต์„ ๊ฐ€์ง„ ํ•™์ƒ์ด ๊ฐ๊ฐ ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•˜๋‹ˆ, ์—†๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋”ฐ๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•„๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค. (๋ณดํ†ต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€๋•Œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๋๋ถ€๋ถ„ ์กฐ๊ฑด(?) ์—์„œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•ด์ค˜์•ผ ํ•  ๋ถ€๋ถ„์ด ์ข…์ข… ์ƒ๊ธฐ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.) reserve๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์—ฌ๋ฒŒ์ด ์žˆ๋Š” ํ•™์ƒ์ด ๋„๋‚œ๋‹นํ•œ ํ•™์ƒ(lost)์—๊ฒŒ ๋นŒ๋ ค์ค€๋‹ค๊ณ  ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€ ๊ฒƒ์ด๋‹ค. ๋จผ์ € reserve์— ์žˆ๋Š” ํ•™์ƒ์ด lost์—๋„ ์žˆ๋Š”์ง€ ์ฒดํฌ (์—ฌ๋ฒŒ์ด ์žˆ์–ด๋„ ๋„๋‚œ๋‹นํ–ˆ์œผ๋ฉด ๋นŒ๋ ค์ค„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ) ํ•˜๊ณ , ๋ณธ์ธ ์•ž -> ๋’ค ์ˆœ์„œ๋กœ lost์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋นŒ๋ ค์ฃผ๊ณ , ๋„๋‚œ๋‹นํ•œ ๋ชฉ๋ก์—์„œ ์ง€์›Œ์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค. ์—ฌ๊ธฐ์„œ ๋นŒ๋ ค์ฃผ๋Š”..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ

์ด ๋ฌธ์ œ๋Š” ์ •์ˆ˜ํ˜• ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๊ณ , ๊ทธ ์•ˆ์—์„œ ์ž„์˜์˜ ๋‘ ์ˆซ์ž๋ฅผ ๊ณจ๋ผ ๋‘ ์ˆ˜๋ฅผ ํ•ฉํ•œ ๊ฐ’์˜ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋‹ค. ์ œํ•œ์‚ฌํ•ญ์— ์ฃผ์–ด์ง€๋Š” ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณด๋ฉด Worst Case์˜ ํƒ์ƒ‰ ํšŸ์ˆ˜๋Š” 10000ํšŒ (100x100) ์ธ๋ฐ, ์‚ฌ์‹ค์ƒ ์ด์ •๋„๋Š” ์ œํ•œ์‹œ๊ฐ„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. (1์–ตํšŒ ์—ฐ์‚ฐ/ํƒ์ƒ‰ ๊ธฐ์ค€ 1์ดˆ๋กœ ํŒ๋‹จ) ๊ทธ๋ƒฅ Brute force ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ๋‘ ์ˆ˜์˜ ํ•ฉ์„ ๋ชจ์€ ๋’ค์— ๋งˆ์ง€๋ง‰์— ์ค‘๋ณต์ œ๊ฑฐ, ์ •๋ ฌ๋งŒ ํ•ด์ฃผ๋ฉด ๋˜๊ฒ ๊ตฌ๋‚˜. ์ •๋ ฌ์€ Array์—์„œ ์ œ๊ณตํ•˜๋Š” .sorted() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ค‘๋ณต์ œ๊ฑฐ๋Š” Set์„ ์ด์šฉํ•˜๋ฉด ๋˜๊ฒ ๋Š”๊ฑธ..!? import Foundation var result: [Int] = [] func solution(_ numbers:[Int]) -> [Int..