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

3๏ธโƒฃ Swift130

[Swift Algorithm] ์ฝœ๋ผ์ธ  ์ถ”์ธก Programmers(Lv.1) ๋ฌธ์ œ ์„ค๋ช… 1937๋…„ Collatz๋ž€ ์‚ฌ๋žŒ์— ์˜ํ•ด ์ œ๊ธฐ๋œ ์ด ์ถ”์ธก์€, ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 1์ด ๋ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋ฉด, ๋ชจ๋“  ์ˆ˜๋ฅผ 1๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ถ”์ธก์ž…๋‹ˆ๋‹ค. ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1-1. ์ž…๋ ฅ๋œ ์ˆ˜๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด 2๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. 1-2. ์ž…๋ ฅ๋œ ์ˆ˜๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด 3์„ ๊ณฑํ•˜๊ณ  1์„ ๋”ํ•ฉ๋‹ˆ๋‹ค. 2. ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ ์ˆ˜์— ๊ฐ™์€ ์ž‘์—…์„ 1์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž…๋ ฅ๋œ ์ˆ˜๊ฐ€ 6์ด๋ผ๋ฉด 6→3→10→5→16→8→4→2→1 ์ด ๋˜์–ด ์ด 8๋ฒˆ ๋งŒ์— 1์ด ๋ฉ๋‹ˆ๋‹ค. ์œ„ ์ž‘์—…์„ ๋ช‡ ๋ฒˆ์ด๋‚˜ ๋ฐ˜๋ณตํ•ด์•ผํ•˜๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ๋‹จ, ์ž‘์—…์„ 500๋ฒˆ์„ ๋ฐ˜๋ณตํ•ด๋„ 1์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด –1์„ ๋ฐ˜ํ™˜ํ•ด ์ฃผ์„ธ์š”. ์ œํ•œ ์กฐ๊ฑด ์ž…๋ ฅ๋œ ์ˆ˜, num์€ 1 ์ด์ƒ 8000000 ๋ฏธ๋งŒ์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ.. 2021. 6. 14.
[Swift Algorithm] ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ Programmers(Lv.1) ๋ฌธ์ œ ์„ค๋ช… ๋‘ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ๋ณด์„ธ์š”. ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ๊ทธ๋‹ค์Œ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋„ฃ์–ด ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ์ˆ˜ 3, 12์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 3, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” 12์ด๋ฏ€๋กœ solution(3, 12)๋Š” [3, 12]๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์กฐ๊ฑด ๋‘ ์ˆ˜๋Š” 1์ด์ƒ 1000000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ n m return 3 12 [3, 12] 2 5 [1, 10] ๋‚ด ๋ฌธ์ œ ํ’€์ด func solution1(_ n:Int, _ m:Int) -> [Int] { var max = 0 // ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ var a = 0 // ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜ ์ค‘์— ๋” ํฐ ์ˆ˜ // ๋” ํฐ ์ˆ˜๋ฅผ ๋ณ€์ˆ˜ a์— ๋„ฃ์Œ if n > m { a = n } els.. 2021. 6. 14.
[Swift] sorted, joined ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ! ๋‚ด๊ฐ€ ๋ฌธ์ž์—ด ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ sorted์™€ joined๋ฅผ ํ•จ๊ป˜ ์“ฐ๋ ค๊ณ  ํ•˜๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๊ทผ๋ฐ ๊ทธ ์ด์œ ๋ฅผ ๋„๋Œ€์ฒด ์•Œ ์ˆ˜๊ฐ€ ์—†์–ด์„œ ํ•œ์ฐธ์„ ๊ณ ๋ฏผํ–ˆ๋‹ค,, ๊นจ๋‹ซ๊ณ  ๋‚˜๋‹ˆ ๊ฐ„๋‹จํ•œ ๋‚ด์šฉ์ด์—ˆ์ง€๋งŒใ…œ ์•ž์œผ๋กœ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ™•์‹คํ•˜๊ฒŒ ์•Œ๊ณ  ์‚ฌ์šฉํ•˜์ž๋Š” ๋ฐ˜์„ฑ์˜ ์˜๋ฏธ์—์„œ ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณด๋ ค ํ•œ๋‹ค. ๐Ÿ“Ž ๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ์ž‘์—…์€ ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•˜์—ฌ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ. ํ•˜์ง€๋งŒ ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ joinedํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ,,!! (๋ฌผ๋ก  String(String(num).sorted())๋กœ ํ•ด์ฃผ๋ฉด ์ถฉ๋ถ„ํ•˜์ง€๋งŒ, ํ•œ ๋ฒˆ ์‹œ๋„ํ•ด๋ดค๋‹ค๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ๊ถ๊ธˆํ•ด์ ธ๋ฒ„๋ ธ๋‹ค,,) ๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ์ด ์˜ค๋ฅ˜์˜ ์›์ธ์„ ์ฐพ๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋˜ ์ด์œ ๋Š”, ๋ถ„๋ช… joined๋Š” [String] ํƒ€์ž…์˜ ์ž…๋ ฅ ๊ฐ’์„ ์ฒ˜.. 2021. 6. 13.
[Swift] ์˜ต์…”๋„ ์ถ”์ถœ (๊ฐ•์ œ ์ถ”์ถœ, ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ, ์˜ต์…”๋„ ์ฒด์ด๋‹) ์ •๋ฆฌ ๋‚ด ๋ธ”๋กœ๊ทธ ์ฒซ ๊ธ€๋กœ ์˜ต์…”๋„์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์—…๋กœ๋“œํ–ˆ์—ˆ๋‹ค. ๊ทธ๋•Œ ์†Œ๊ฐœํ•˜๊ธฐ๋ฅผ, ๋‚ด๊ฐ€ ์Šค์œ„ํ”„ํŠธ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋‹ˆ ?์™€ !๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค๊ณ  ํ–ˆ๋˜ ๊ธฐ์–ต,, ๊ทธ ๋‚ ์€ ?์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœ๋ฅผ ํ–ˆ๋‹ค๋ฉด ๊ทธ์— ์ด์–ด ์˜ค๋Š˜์€ !์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์˜ต์…”๋„์ธ ๊ฐ’์„ ์˜ต์…”๋„์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์ถ”์ถœํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์ž! (์˜ต์…”๋„์— ๋Œ€ํ•ด ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„์ด๋ผ๋ฉด ์—ฌ๊ธฐ๐Ÿ‘‡๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!) 2021.06.06 - [๐Ÿ“ Swift Note/๐Ÿ“‹ Concept Summary] - [Swift] Optional(์˜ต์…”๋„) ์ •๋ฆฌ [Swift] Optional(์˜ต์…”๋„) ์ •๋ฆฌ ์Šค์œ„ํ”„ํŠธ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค ๋ณด๋‹ˆ ?, ๊ทธ๋ฆฌ๊ณ  ! ์ด๋Ÿฐ ๋ฌธ์žฅ ๋ถ€ํ˜ธ๋“ค์ด ๋“ฑ์žฅํ•œ๋‹ค. ์˜ค๋Š˜์€ ๊ทธ ์ค‘ ?์— ๋Œ€ํ•ด ๋จผ์ € ์„ค๋ช…ํ•ด ๋ณด๋ ค ํ•œ๋‹ค. ๐Ÿ“Ž ์˜ต์…”๋„ ์Šค์œ„ํ”„ํŠธ๊ฐ€ ๊ฐ€์ง€๋Š” ๋Œ€ํ‘œ์ ์ธ ํŠน์ง•์œผ๋กœ ์•ˆ์ „์„ฑ์ด.. 2021. 6. 12.
[Swift] Type Annotation๊ณผ Type Inference (ํƒ€์ž… ์–ด๋…ธํ…Œ์ด์…˜๊ณผ ํƒ€์ž… ์ถ”๋ก ) ์Šค์œ„ํ”„ํŠธ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ๊ฐ€๋” Type Annotation์— ๊ด€ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ตฌ๊ธ€๋ง ํ•  ๋•Œ๋„ ์–ด๋…ธํ…Œ์ด์…˜์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋งŽ์ด ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ฌธ๋งฅ ์ƒ ๋ณ€์ˆ˜ ์ƒ์„ฑ์‹œ ํƒ€์ž…์„ ์ง€์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค๊ณ  ์ดํ•ดํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์˜ค๋Š˜์€ ์Šค์œ„ํ”„ํŠธ์˜ Type Annotation๊ณผ Inference์— ๋Œ€ํ•ด ์ •ํ™•ํžˆ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“Ž Type Annotation (ํƒ€์ž… ์–ด๋…ธํ…Œ์ด์…˜) ์Šค์œ„ํ”„ํŠธ์—์„œ๋Š” ๋ณ€์ˆ˜ ํ˜น์€ ์ƒ์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ์—๋Š” var [๋ณ€์ˆ˜๋ช…]: [๋ฐ์ดํ„ฐ ํƒ€์ž…] = [๊ฐ’]์˜ ํ˜•ํƒœ๋กœ, ์ƒ์ˆ˜ ์„ ์–ธ ์‹œ์—๋Š” let [์ƒ์ˆ˜๋ช…]: [๋ฐ์ดํ„ฐ ํƒ€์ž…] = [๊ฐ’]์˜ ํ˜•ํƒœ๋กœ ์ƒ์„ฑํ•œ๋‹ค. // ๋ณ€์ˆ˜ ์ƒ์„ฑ var a1: Int var a2: Int = 0 // ์ƒ์ˆ˜ ์ƒ์„ฑ let b1: Int let.. 2021. 6. 11.