
๋ฌธ์ ์ค๋ช ๋ฌธ์ ํ์ด ํ ์ธ์จ์ด ๋๋ค๊ณ ์ข์ ๊ฒ๋ ์๋๊ณ ๊ธฐ์ค์ก์ด ๋ฎ๋ค๊ณ ์ข์ ๊ฒ๋ ์๋ ๊ฒ ๊ฐ์๋ค. ๋ฐ๋ผ์ ํ ์ธํ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ง๋ฉฐ ๊ณ์ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ DFS๋ฅผ ์ฌ์ฉํ๋ค. DFS(ํ ์ธ๊ฐ์, [ํ ์ธํผ์ผํธ๋ค]) ๋ก ๋๋ฆฌ๋ฉฐ ํ ์ธ๊ฐ์๊ฐ ์ด๋ชจํฐ์ฝ ๊ฐ์๋ ๊ฐ์ ๋ ๋ฉ์ถ๊ณ ์ด๋ชจํฐ์ฝ ์ฌ์ฉ์์ ์์ ์ด์ก์ ๊ณ์ฐํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค. ์ฝ๋ import Foundation func solution(_ users:[[Int]], _ emoticons:[Int]) -> [Int] { // ๊ฐ์ ์ ์, ํ๋งค์ก ๊ณ์ฐํด์ ๋ฆฌํด ex) [1, 5100] func calcResult(_ percents: [Int]) -> [Int] { var answer = [0, 0] for i in 0..

๋ฌธ์ ํ์ด 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..