๋ฌธ์ ํ์ด DFS๋ฅผ ์ด์ฉํด์ ํ์๋ค. 1. ์ด์ค๋ฐฐ์ด์ ์ฐ๊ฒฐ์ ์ ๋ฃ๋๋ค. (vertex๋ 1๋ถํฐ ์์์ด๊ธฐ ๋๋ฌธ์ 0์ ๋น์๋ ) ex) [[], [3], [3], [1,2,4]] 2. wires๋ฅผ ํฌ๋ฌธ์ ๋๋ฆฌ๋ฉฐ ์ฐ๊ฒฐ์ ์ ์ ๊ฑฐํด๋ณธ๋ค. 3. ํ๋ ์ ๊ฑฐํ ์ํ์์ DFS๋ฅผ ๋๋ ค๋ณธ๋ค. ์ด๋ DFS๋ DFS(๊ทธ๋ํ, ํ์ฌ์ ์ )์ด๊ณ DFS๊ฐ ๊ฐ ์ ์๋ ๋๊น์ง ๊ฐ์ ๋ ๋ฐฉ๋ฌธํ ์ ์ ๊ฐ์ count๋ฅผ ๊ตฌํ๋ค. (ํ ์ชฝ์ depth๋ง ๊ตฌํด๋ ๋ค๋ฅธ ํ์ชฝ์ ๊ฐ์๋ฅผ ์ ์ ์๊ธฐ๋๋ฌธ์ ๊ทธ๋ฅ 1๋ถํฐ ๋๋ฆฌ๊ณ ๋๊น์ง ๊ฐ๋ณธ๋ค.) 4. wires ํ๋ ์ ๊ฑฐํ ๋๋ง๋ค ์ก์ ํ์ ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ตฌํ๋ค. (๋ค์ wires๋บ๋ visited, count ์ด๊ธฐํ) ์ฝ๋ func solution(_ n:Int, _ wires:[[Int]]) -> Int..
ARC ์๋ ์ฐธ์กฐ ์นด์ดํ Automatic Reference Counting swift๋ ARC๋ก ์ธ์คํด์ค๊ฐ ํ์ํ์ง ์์ ๋ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํด์ค๋ค. ๋น์ฐํ๊ฒ๋ struct์ enum์ ๊ฐ์ ๋ณต์ฌํ๋ valueํ์ ์ด๊ธฐ ๋๋ฌธ์ ํด๋น๋์ง ์๊ณ ์ฐธ์กฐ ํ์ ์ธ class์ ์ธ์คํด์ค์๋ง ์ฐธ์กฐ ์นด์ดํ ์ด ์ ์ฉ๋๋ค. ์๋ฐ์์ ์ฌ์ฉํ๋ ๊ฐ๋น์ง ์ฝ๋ ์ (GC)์ ๋ค๋ฅธ์ ์ GC๋ ๋ฐํ์๋ ๊ณ์ ์ฐธ์กฐ๋ฅผ ์ถ์ ํ๊ณ RC๋ ์ปดํ์ผ๋ ๋ชจ๋ ๊ฒฐ์ ์ด ๋๋ค๋ ์ฐจ์ด์ ์ด ์๋ค. ARC์ ์๋ ์๋ฆฌ ํด๋์ค์ ์๋ก์ด ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋๋ง๋ค ARC๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํด์ค ์ธ์คํด์ค๊ฐ ๋์ด์ ํ์์น ์์ ๋ ARC๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํด์ ํด์ค ์ฌ์ฉ์ค์ธ ์ธ์คํด์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ ํด์ ํ๋ฉด ์๋๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค์ ๊ฐํ ์ฐธ์กฐ (strong reference)..
ํ๋กํ ์ฝ (Protocols) ๋ฐ๋ผ์ผํ๋ ์๊ตฌ ์ฌํญ์ ์ ์ํ๋ค. class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol { // class definition goes here } ์์ฑ ์์ : ๋ถ๋ชจํด๋์ค ๋จผ์ ์์ฑํ๊ณ ๊ทธ ๋ค์์ ํ๋กํ ์ฝ์ ์ฑํํ๋ค. protocol SomeProtocol { var mustBeSettable: Int { get set } var doesNotNeedToBeSettable: Int { get } } ๊ฐ ํ๋กํผํฐ๊ฐ gettable ์ธ์ง gettable๊ณผ settable ์ธ์ง ์ง์ ํด์ค์ผ ํจ mutating ๋ฉ์๋ ์๊ตฌ์ฌํญ protocol Togglable { mutating func toggle() } enum On..
ํด๋์ค๋ ๊ตฌ์กฐ์ฒด์ ๋ค๋ฅด๊ฒ ๋ฉค๋ฒ์์ด์ฆ ์ด๋์ ๋ผ์ด์ ๊ฐ ์์ ํ์๋ก ๊ตฌํํด์ผ ํจ ์ง์ ์์ฑ์(Designated Initializer) class Anmimal { let name: String let age: Int init(name: String, age: Int) { self.name = name self.age = age } } ๋ชจ๋ ํ๋กํผํฐ๋ฅผ ์๋ฒฝํ๊ฒ ์ด๊ธฐํํจ ์ต์ ๋ ํ๋กํผํฐ์ด๊ฑฐ๋ ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง ํ๋กํผํฐ๋ ์์ธ ๋ชจ๋ ํด๋์ค๋ ์ ์ด๋ 1๊ฐ ์ด์์ ์ง์ ์์ฑ์๋ฅผ ๊ฐ์ง ๋ฐ๋์ ์์ ํด๋์ค์ ์ง์ ์์ฑ์๋ ๋ถ๋ชจ ํด๋์ค์ ์ง์ ์์ฑ์๋ฅผ ํธ์ถํด์ผ ํจ ํธ์ ์์ฑ์ (Convenience Initializers) class Anmimal { let name: String let age: Int init(name: ..