๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ381 [ํ๋ก๊ทธ๋๋จธ์ค LV.1] ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋ชจ์ ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด s๋ฅผ ์ซ์๋ก ๋ณํํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํ์ธ์. ์ ํ ์ฌํญ s์ ๊ธธ์ด๋ 1 ์ด์ 5์ดํ์ ๋๋ค. s์ ๋งจ์์๋ ๋ถํธ(+, -)๊ฐ ์ฌ ์ ์์ต๋๋ค. s๋ ๋ถํธ์ ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ ธ์์ต๋๋ค. s๋ "0"์ผ๋ก ์์ํ์ง ์์ต๋๋ค. ์ ์ถ๋ ฅ ์ str์ด "1234"์ด๋ฉด 1234๋ฅผ ๋ฐํํ๊ณ , "-1234"์ด๋ฉด -1234๋ฅผ ๋ฐํํ๋ฉด ๋ฉ๋๋ค. str์ ๋ถํธ(+,-)์ ์ซ์๋ก๋ง ๊ตฌ์ฑ๋์ด ์๊ณ , ์๋ชป๋ ๊ฐ์ด ์ ๋ ฅ๋๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ ์ถ func solution(_ s:String) -> Int { return s == "-" ? 0 : Int(s)! } 2023. 2. 8. [Swift] ์ ๊ทผ ์ ์ด (Access Control) ์ ๊ทผ ์ ์ด (Access Control) ํน์ ์ฝ๋์ ์ ๊ทผ์ ๋ค๋ฅธ ์์ค ํ์ผ์ด๋ ๋ชจ๋์์ ์ ํํ๋ ๊ฒ ๋ชจ๋๊ณผ ์์คํ์ผ Swift์ ์ ๊ทผ ์ ์ด๋ ๋ชจ๋๊ณผ ์์คํ์ผ์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ ๋ชจ๋์ ์ฝ๋๋ฅผ ๋ฐฐํฌํ๋ ๋จ์ผ ๋จ์๋ก, ํ๋ ์์ํฌ๋ ์ฑ์ด ์ด ๋จ์๋ก ๋ฐฐํฌ๋๊ณ ๋ค๋ฅธ ๋ชจ๋์์ import ํค์๋๋ฅผ ์ฌ์ฉํด ํฌํจ๋ ์ ์์ ์์คํ์ผ์ ๋ชจ๋ ์์ ์๋ ์์คํ์ผ์ ์๋ฏธ ์ ๊ทผ ๋ ๋ฒจ Swift์์๋ 5๊ฐ์ ์ ๊ทผ ๋ ๋ฒจ์ ์ ๊ณต Open ์ ์ธํ ๋ชจ๋์ด ์๋ ๋ค๋ฅธ ๋ชจ๋์์ ์ฌ์ฉ ๊ฐ๋ฅ Public ์ ์ธํ ๋ชจ๋์ด ์๋ ๋ค๋ฅธ ๋ชจ๋์์ ์ ๊ทผ์ด ๊ฐ๋ฅ ๋ค๋ฅธ ๋ชจ๋์์ ์ค๋ฒ๋ผ์ด๋์ ์๋ธํด๋์ฑ์ด ๋ถ๊ฐ๋ฅ Internal Internal ๊ธฐ๋ณธ ์ ๊ทผ ๋ ๋ฒจ File-Private ํน์ ์ํฐํฐ๊ฐ ์ ์ธํ ํ์ผ ์์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ Private Private.. 2023. 2. 7. [Swift] ARC ARC (Automatic Reference Counting) ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํด ์ฃผ๋ ๋ฐฉ์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ ๊ฐ๋ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ ๊ฒฝ์ ์ธ ํ์๊ฐ ์์ ARC๋ ๋ ์ด์ ํ์ํ์ง ์์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ํ๋ ๋ฐฉ์์ผ๋ก ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์ค, ํ ์์ญ๊ณผ ๊ด๋ จ ํ ์์ญ์ ์ฐธ์กฐ(Reference) ํ ํ์ ์ธ ํด๋์ค, ํด๋ก์ ๋ฑ์ด ๋ณด๊ด ๊ฐ(Value) ํ์ ์ธ ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ฑ์ ๋ฉ๋ชจ ๋ฆฌ ๊ด๋ฆฌ ๋์์ด ์๋ ํ ์์ญ์ ์ฐธ์กฐํ ์๋ฃ๋ค์ด ํ๋ก๊ทธ๋จ ์์์ ์ผ๋ง๋ ์ฐธ์กฐ๋๋์ง ์ซ์๋ฅผ ์ธ์ด์, ๋ฉ๋ชจ๋ฆฌ ๊ฐ ์๋์ผ๋ก ํ ๋น ๋ฐ ์ ๊ฑฐํ๋๋ก ๊ด๋ฆฌํ๋ ๊ฒ ARC ๋์ ARC๋ ํด๋์ค ์ธ์คํด์ค๋ฅผ ์์ฑํ์์ ๋, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ํด๋์ค ์ธ์คํด์ค๊ฐ ๋์ด ์ ํ์ํ์ง ์์ ๋, ARC๋ ํด๋น ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ .. 2023. 2. 7. [Swift] ์ ๋ค๋ฆญ (Generic) ์ ๋ค๋ฆญ (Generic) ํ์ ์ ํ๋ผ๋ฏธํฐํ ํ์ฌ ์ปดํ์ผ ํ์์ ๊ตฌ์ฒด์ ์ธ ํ์ ์ด ๊ฒฐ์ ๋๋ ๊ฒ์ ์๋ฏธ ์ ๋ค๋ฆญ์ ์ด์ฉํ๋ฉด ํ์ ์ ์ ์ฐํ๊ฒ ๋์ฒํ๋ ๊ฒ์ด ๊ฐ๋ฅ ์ ๋ค๋ฆญ์ผ๋ก ๊ตฌํํ ๊ธฐ๋ฅ๊ณผ ํ์ ์ ์ฌ์ฌ์ฉ์ ์ฉ์ด ์ฝ๋์ ์ค๋ณต์ ์ค์ผ ์ ์์ด์ ๊น๋ํ ํํ์ด ๊ฐ๋ฅ Swift์์์ ๋ํ์ ์ธ ์ ๋ค๋ฆญ ํ์ ์ผ๋ก๋ Array์ Dictionary ํ์ ์ด Array์ Dictionary๋ Int ๊ฐ์ ์ ์ฅํ ์๋ ์๊ณ , String ๊ฐ์ ์ ์ฅํ ์๋ ์์ผ๋ฏ๋ก, ํ์ ์ ์ ํ์ด ์์ // String ํ์ ์ ๊ฐ๋ ๋๊ฐ์ ๊ฐ์ ๋ฐ๊พธ๋ ํจ์ func swapTwoStrings(_ a: inout String, _ b: inout String) { let temporaryA = a a = b b = temporaryA } // Double.. 2023. 2. 7. [Swift] ์๋ฌ ์ฒ๋ฆฌ ์๋ฌ ์ฒ๋ฆฌ (ErrorHandling) ํ๋ก๊ทธ๋จ ์คํ ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๊ทธ ์ํฉ์ ๋ํด ๋์ํ๊ณ , ์ด๋ฅผ ๋ณต๊ตฌํ๋ ๊ณผ์ Swift์์๋ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ฒ๋ฆฌ๋ฅผ ์ํด ์๋ฌ์ ๋ฐ์(throw ing), ๊ฐ์ง(catching), ์ ํ(propagating), ์กฐ์(manipulating)์ ์ง์ํ๋ ์ผ๊ธ ํด๋์ค๋ฅผ ์ ๊ณต ์๋ฌ์ ํ์์ ๋ฐ์ (Representing and Throwing Errors) Swift์์ ์๋ฌ๋ Error ํ๋กํ ์ฝ์ ๋ฐ๋ฅด๋ ํ์ ์ ๊ฐ์ผ๋ก ํํ Error ํ๋กํ ์ฝ์ ๋น์ด์์ผ๋ฉฐ ์๋ฌ ์ฒ๋ฆฌ์ ํ์ ์ ์ฌ์ฉํ ์ ์์์ ๋ํ๋ enum ServerError: Error { case forbidden case notFound case internalError case unauthori.. 2023. 2. 7. [ํ๋ก๊ทธ๋๋จธ์ค LV.1] ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์? ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋ชจ์ ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์? ๋ฌธ์ ์ค๋ช ๊ธธ์ด๊ฐ n์ด๊ณ , "์๋ฐ์๋ฐ์๋ฐ์...."์ ๊ฐ์ ํจํด์ ์ ์งํ๋ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํ์ธ์. ์๋ฅผ ๋ค์ด n์ด 4์ด๋ฉด "์๋ฐ์๋ฐ"์ ๋ฆฌํดํ๊ณ 3์ด๋ผ๋ฉด "์๋ฐ์"๋ฅผ ๋ฆฌํดํ๋ฉด ๋ฉ๋๋ค. ์ ํ ์ฌํญ n์ ๊ธธ์ด 10,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ์ ์ถ๋ ฅ ์ n return 3 "์๋ฐ์" 4 "์๋ฐ์๋ฐ" ์ ์ถ func solution(_ n:Int) -> String { var re = "" for i in 1...n{ if i % 2 == 1{ re += "์" } else{ re += "๋ฐ" } } return re } 1๋ถํฐ n๊น์ง ๋ฐ๋ณต๋ฌธ์ ์คํํ์ฌ, ํ์๋ผ๋ฉด "์" ์ง์๋ผ๋ฉด "๋ฐ"์ re ๋ณ์์ ์ถ๊ฐํ๋ค. ๋ค๋ฅธ ํ์ด func.. 2023. 2. 7. ์ด์ 1 ยทยทยท 32 33 34 35 36 37 38 ยทยทยท 64 ๋ค์ ๋ฐ์ํ