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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ381

[Swift] ํƒ€์ž… ์บ์ŠคํŒ… ํƒ€์ž… ์บ์ŠคํŒ… (Type Casting) ์ธ์Šคํ„ด์Šค์˜ "ํƒ€์ž…"์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ์Šˆํผ ํด๋ž˜์Šค๋‚˜ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• Swift์—์„œ ํƒ€์ž… ์บ์ŠคํŒ…์€ "is"๋‚˜ "as" ์—ฐ์‚ฐ์ž๋กœ ๊ตฌํ˜„ ํƒ€์ž… ์บ์ŠคํŒ…์„ ์‚ฌ์šฉํ•˜์—ฌ ํƒ€์ž…์ด ํ”„๋กœํ† ์ฝœ์— ์ ํ•ฉํ•œ์ง€ ์—ฌ๋ถ€๋„ ํ™•์ธ ๊ฐ€๋Šฅ is ํƒ€์ž…์„ ์ฒดํฌํ•˜๋Š” ์—ฐ์‚ฐ์ž ๋Ÿฐํƒ€์ž„ ์‹œ์ ์— ์‹ค์ œ ์ฒดํฌ๊ฐ€ ์ด๋ฃจ์–ด์ง ๋ฐ˜ํ™˜ ๊ฐ’์€ Bool ํ˜• ํ‘œํ˜„์‹์ด Type๊ณผ ๋™์ผํ•˜๊ฑฐ๋‚˜, ํ‘œํ˜„์‹์ด Type์˜ ์„œ๋ธŒํด๋ž˜์Šค์ธ ๊ฒฝ์šฐ True๋ฅผ ๋ฐ˜ํ™˜ ์ด ์™ธ์—๋Š” False ๋ฐ˜ํ™˜ //1 let char: Character = "A" char is Character // true char is String // false //2 class Animal { } class Dog: Animal { } let dog: Dog = ... 2023. 2. 6.
[Swift] ํด๋ž˜์Šค(Class)์™€ ๊ตฌ์กฐ์ฒด(Struct) ํด๋ž˜์Šค(Class) ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ํด๋ž˜์Šค์—์„œ ์ƒ์„ฑ๋œ ๊ฐ์ฒด์ธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ ํด๋ž˜์Šค ์•ˆ์˜ ๋ณ€์ˆ˜ ํ”„๋กœํผํ‹ฐ(Property)์™€ ํด๋ž˜์Šค ์•ˆ์˜ ํ•จ์ˆ˜ ๋ฉ”์„œ๋“œ(Method)๋กœ ๊ตฌ์„ฑ class Name { var name = "Hyebin" //ํ”„๋กœํผํ‹ฐ //๋ฉ”์„œ๋“œ func my_name() { print("my name is \(name)") } } //์ธ์Šคํ„ด์Šค ์ƒ์„ฑ let hyebin : Name = Name() print(hyebin.name)// Hyebin hyebin.my_name()// my name is Hyebin hyebin.name = "yoo" hyebin.my_name()// my name is yoo ํด๋ž˜์Šค ์ดˆ๊ธฐํ™” (Initialization).. 2023. 2. 6.
[Swift] ์˜ต์…”๋„ (Optional) ์˜ต์…”๋„(Optional) ๊ฐ’์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ  ์—†์„ ์ˆ˜๋„ ์žˆ๋Š” ๋ณ€์ˆ˜ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ์—๋Š” nil์„ ์‚ฌ์šฉ ๋ณ€์ˆ˜ ์ •์˜ํ•  ๋•Œ ํƒ€์ž… ์–ด๋…ธํ…Œ์ด์…˜์— ๋ฌผ์Œํ‘œ(?)๋ฅผ ๋ถ™์—ฌ ์ •์˜ Optional(value) ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ ์˜ต์…”๋„์— ์ดˆ๊นƒ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ nil var name: String? print(name) //nil name = "hyebin" print(name) //Optional("hyebin") ์˜ต์…”๋„๋กœ ์ •์˜ํ•œ ๋ณ€์ˆ˜๋Š” ์˜ต์…”๋„์ด ์•„๋‹Œ ๋ณ€์ˆ˜์™€๋Š” ๋‹ค๋ฆ„ var optional_name: String? = "hyebin" let name: String = optional_name Value of optional type 'String?' must be unwrapped to a value of .. 2023. 2. 6.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ์„œ์šธ์—์„œ ๊น€์„œ๋ฐฉ ์ฐพ๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ ์„œ์šธ์—์„œ ๊น€์„œ๋ฐฉ ์ฐพ๊ธฐ ๋ฌธ์ œ ์„ค๋ช… Stringํ˜• ๋ฐฐ์—ด seoul์˜ element์ค‘ "Kim"์˜ ์œ„์น˜ x๋ฅผ ์ฐพ์•„, "๊น€์„œ๋ฐฉ์€ x์— ์žˆ๋‹ค"๋Š” String์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. seoul์— "Kim"์€ ์˜ค์ง ํ•œ ๋ฒˆ๋งŒ ๋‚˜ํƒ€๋‚˜๋ฉฐ ์ž˜๋ชป๋œ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ seoul์€ ๊ธธ์ด 1 ์ด์ƒ, 1000 ์ดํ•˜์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. seoul์˜ ์›์†Œ๋Š” ๊ธธ์ด 1 ์ด์ƒ, 20 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. "Kim"์€ ๋ฐ˜๋“œ์‹œ seoul ์•ˆ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ seoul return ["Jane", "Kim"] "๊น€์„œ๋ฐฉ์€ 1์— ์žˆ๋‹ค" ์ œ์ถœ func solution(_ seoul:[String]) -> String { return "๊น€์„œ๋ฐฉ์€ \(seoul.firs.. 2023. 2. 6.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ ๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด๊ฐ€ 4 ํ˜น์€ 6์ด๊ณ , ์ˆซ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋ผ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด s๊ฐ€ "a234"์ด๋ฉด False๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  "1234"๋ผ๋ฉด True๋ฅผ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ s๋Š” ๊ธธ์ด 1 ์ด์ƒ, ๊ธธ์ด 8 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. s๋Š” ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž ๋˜๋Š” 0๋ถ€ํ„ฐ 9๊นŒ์ง€ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ s return "a234" false "1234" true ์ œ์ถœ func solution(_ s:String) -> Bool { return ((s.count == 4 || s.count == 6) && (s.filter{$0.isLetter}.count == 0)) ? true : false }.. 2023. 2. 6.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ž์—ด s์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ž๋ฅผ ํฐ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. s๋Š” ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋ณด๋‹ค ์ž‘์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ str์€ ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ s return "Zbcdefg" "gfedcbZ" ์ œ์ถœ func solution(_ s:String) -> String { return String(s.sorted { $0 > $1 }) } 2023. 2. 6.
๋ฐ˜์‘ํ˜•