๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ381 UIKit UIKit ํ๋ ์์ํฌ๋ iOS ๋๋ tvOS ์ฑ์ ํ์ํ ์ธํ๋ผ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ธฐ ์ํ window์ view architecture์ ์ ๊ณตํฉ๋๋ค. Multi-Touch ๋ฐ ๊ธฐํ ์ ํ์ ์ ๋ ฅ์ ์ฑ์ ์ ๊ณตํ๊ธฐ ์ํ ์ด๋ฒคํธ ์ฒ๋ฆฌ ์ธํ๋ผ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฌ์ฉ์, ์์คํ ๋ฐ ์ฑ ๊ฐ์ ์ํธ ์์ฉ์ ๊ด๋ฆฌํ๋๋ฐ ํ์ํ ๊ธฐ๋ณธ ์คํ ๋ฃจํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ ๋ฐ์, UIKit ํ๋ ์์ํฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ ์ง์ํฉ๋๋ค. ์ ๋๋ฉ์ด์ ๋ฌธ์ ๊ทธ๋ฆฌ๊ธฐ printing ์ฌ์ฉ์ค์ธ ๊ธฐ๊ธฐ ์ ๋ณด ํ ์คํธ ๊ด๋ฆฌ ๋ฐ ํ์ ๊ฒ์ ์ ๊ทผ์ฑ ์ฑ ํ์ฅ ๋ฆฌ์์ค ๊ด๋ฆฌ ๋ณ ๋ค๋ฅธ ๋ช ์์ฌํญ์ด ์๋ค๋ฉด, UIKit์ ํฌํจ๋ ํด๋์ค๋ค์ ์ฑ์ main thread ํน์ main dispatch queue์์๋ง ์ฌ์ฉํด์ผ ํ๋ค. ์ด ์ ํ์ UIRespond.. 2022. 3. 21. [์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ฆฌ๋(Greedy) ๊ทธ๋ฆฌ๋(Greedy) ํ์๋ฒ ์๊ณ ๋ฆฌ์ฆ ํ์ฌ ์ํฉ์์ ๊ฐ์ฅ ์ข์ ๊ฒ์ ๊ณ ๋ฅด๋ ์๊ณ ๋ฆฌ์ฆ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ ํ ์ ์ฐจ(Selection Procedure): ํ์ฌ ์ํ์์ ์ต์ ์ ํด๋ต ์ ํ ์ ์ ์ฑ ๊ฒ์ฌ(Feasibility Check): ์ ํ๋ ํด๊ฐ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง ๊ฒ์ฌ ํด๋ต ๊ฒ์ฌ(Solution Check): ์๋์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋์ง ๊ฒ์ฌ, ํด๊ฒฐ๋์ง ์์๋ค๋ฉด ์ ํ ์ ์ฐจ๋ก ๋์์ ์์ ๊ณผ์ ๋ฐ๋ณต ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ์กฐ๊ฑด ํ์์ค๋ฌ์ด ์ ํ ์กฐ๊ฑด(Greedy Choice Property): ์์ ์ ํ์ด ์ดํ์ ์ ํ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ(Optimal Substructure): ๋ฌธ์ ์ ๋ํ ์ต์ข ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ถ๋ถ ๋ฌธ์ ์ ๋ํ ์ต์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ค. ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ .. 2022. 3. 8. [Swift] ์ด๊ฑฐํ (Enumerations) ์ด๊ฑฐํ ๊ด๋ จ๋ ๊ฐ์ผ๋ก case๊ฐ์ผ๋ก string, character, integer, floting ๊ฐ๋ค์ ์ฌ์ฉ ๊ณ์ฐ๋ ํ๋กํผํฐ(computed properties)๋ฅผ ์ ๊ณตํ๊ฑฐ๋ ์ด๊ธฐํ๋ฅผ ์ง์ ํ๊ฑฐ๋, ์ด๊ธฐ ์ ์ธ์ ํ์ฅํด ์ฌ์ฉ ๊ฐ๋ฅ ์ด๊ฑฐํ ๋ฌธ๋ฒ ์์ ๊ฐ(Raw Values)์ด ์๋ ์ด๊ฑฐํ enum CompassPoint { case north case south case east case west } //์ฝค๋ง(,)๋ฅผ ๊ตฌ๋ถํด ํ์ค๋ก ์ ์ enum CompassPoint { case north, south, east, west } var directionToHead = CompassPoint.west var directionToHead: CompassPoint = .west /*CompassPoint๋ก ํ๋ฒ .. 2022. 2. 8. [Swift] ํจ์(Functions) ์ ์์ ํธ์ถ /* func ํจ์๋ช (ํ๋ผ๋ฏธํฐ: ๋ฐ์ดํฐ ํ์ ) -> ๋ฐํํ์ { return } */ func person (name: String, age: Int) -> String{ var s = "Myname is " + name + " and my age is \(age)" return s } var s = person(name: "hyebin", age: 24) print(s) //Myname is hyebin and my age is 24 ํจ์ ํ๋ผ๋ฏธํฐ์ ๋ฐํ ๊ฐ ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ํจ์ func helloWorld() -> String{ return "hello, world" } print(helloWorld()) //hello, world ๋ฐํ ๊ฐ์ด ์๋ ํจ์ func helloWorld(){.. 2021. 12. 2. [Swift] ์ ์ด๋ฌธ(Control Flow) ๋ฐ๋ณต๋ฌธ1. for๋ฌธ๋ฐฐ์ด, ์ซ์, ๋ฌธ์์ด์ ์์๋๋ก ์ํํ๊ธฐ ์ํด ์ฌ์ฉreversed(): ์ญ์์ผ๋ก ์ํstride(from: x, to: y, by: z): x๋ถํฐ y-1๊น์ง z ๋งํผ์ฉ ์ํ stride(from: x, through: y, by: z): x๋ถํฐ y๊น์ง z ๋งํผ์ฉ ์ํ // for ๋ฃจํ์์ in ์ํ ๋์{ ๊ตฌ๋ฌธ }for i in 1...3{ print(i)}//๋ฃจํ ์์๋ฅผ _ ํค์๋ ์ฌ์ฉ ๊ฐ๋ฅfor _ in 1...3{ print(1)} 2. while๋ฌธ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋๊น์ง ๊ตฌ๋ฌธ์ ๋ฐ๋ณต//while ์กฐ๊ฑด { ๊ตฌ๋ฌธ }var a = 10while a > 0{ a -= 1} 3. reapet-while๋ฌธ๊ตฌ๋ฌธ์ ๋จผ์ ์คํํ ํ while ์กฐ๊ฑด์ ํ์ธํ์ฌ ๊ฑฐ์ง์ผ ๋๊น์ง ๋ฐ๋ณต// repeat { .. 2021. 11. 26. [Swift] ๋ฐ์ดํฐ ํ์ (2) ์ปฌ๋ ์ ํ์ ๋ฐฐ์ด(Array) ๊ฐ์ ๋ฐ์ดํฐ์ ๊ฐ๋ค์ ์์๋๋ก ์ ์ฅํ๋ ๋ฆฌ์คํธ //var(or let) ๋ฐฐ์ด๋ช : Array = Array() var arrayName: Array = Array() //์ถ์ฝํ var arrayName = [Int]() var arrayName: [Int] = [] count ๋ฐฐ์ด์ ์์ ๊ฐ์ ๋ฐํ isEmpty ๋ฐฐ์ด์ด ๋น์ด์๋์ง ํ์ธ append, += ๋ฐฐ์ด์ ์์ ์ถ๊ฐ insert(Value, at: postion) ๋ฐฐ์ด์ ํด๋น ์์น์ ๊ฐ ์ถ๊ฐ remove(at: postion) ๋ฐฐ์ด์ ํด๋น ์์น์ ๊ฐ ์ ๊ฑฐ removeFirst() removeLast() ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์ ๋๋ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐ ํ ํด๋น ์์ ๊ฐ์ ๋ฐํ ๋์ ๋๋ฆฌ(Dictionary) ์์ ์์ด ํค(K.. 2021. 11. 25. ์ด์ 1 ยทยทยท 60 61 62 63 64 ๋ค์ ๋ฐ์ํ