๋ฌธ์ ์ค๋ช ๋ฌธ์ ํ์ด ํ ์ธ์จ์ด ๋๋ค๊ณ ์ข์ ๊ฒ๋ ์๋๊ณ ๊ธฐ์ค์ก์ด ๋ฎ๋ค๊ณ ์ข์ ๊ฒ๋ ์๋ ๊ฒ ๊ฐ์๋ค. ๋ฐ๋ผ์ ํ ์ธํ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ง๋ฉฐ ๊ณ์ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ 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..
๋ฌธ์ ์ค๋ช https://www.acmicpc.net/problem/1743 1743๋ฒ: ์์๋ฌผ ํผํ๊ธฐ ์ฒซ์งธ ์ค์ ํต๋ก์ ์ธ๋ก ๊ธธ์ด N(1 ≤ N ≤ 100)๊ณผ ๊ฐ๋ก ๊ธธ์ด M(1 ≤ M ≤ 100) ๊ทธ๋ฆฌ๊ณ ์์๋ฌผ ์ฐ๋ ๊ธฐ์ ๊ฐ์ K(1 ≤ K ≤ N×M)์ด ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ K๊ฐ์ ์ค์ ์์๋ฌผ์ด ๋จ์ด์ง ์ขํ (r, c)๊ฐ ์ฃผ์ด์ง๋ค www.acmicpc.net ๊ฐ๋จํ๊ฒ ์ํ์ข์ฐ๋ก ์์ง์ผ ์ ์๊ณ ๊ทธ ์ฐ๋ ๊ธฐ์ ํฌ๊ธฐ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ํ์ด DFS๋ก ํ์ด๋ดค๋ค. 2์ฐจ์๋ฐฐ์ด๋ก map๊ณผ visited ๋ฐฐ์ด์ ๋ง๋ค๊ณ ์ฐ๋ ๊ธฐ๋ฉด 1, ์๋๋ฉด 0์ผ๋ก ํ์ํ๋ค. 1000 0110 1100 ์์ ์์ ์์ ์ด๋ ๊ฒ.. ๊ทธ๋ฆฌ๊ณ for๋ฌธ์ ๋๋ฉด์ ์ฐ๋ ๊ธฐ์ด๊ณ ๋ฐฉ๋ฌธํ์ง ์์ ๊ฒฝ์ฐ์ DFS๋ฅผ ๋๋ ค์ฃผ๋ฉฐ count๋ฅผ +1 ํด์ฃผ์๋ค...
๋ฌธ์ ์ค๋ช ๋ฌธ์ ํ์ด ์ฒ์ ์ ๊ทผ๋ฒ์ ๊ธธ์ด๊ฐ 100์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ n๊ฐ ์ด์์ ๋์ ์ด ๋์ค๋์ง ์ฒดํฌ, 100 -> 200 -> 300 ๋๋ ค๊ฐ๋ฉฐ ์๊ฐํ๋ค ์ด์งํ์์ ๋ ์ฌ๋ฆฌ๊ฒ ๋์๋ค. (์์ ํ์๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์) left๋ 1, right๋ ๊ฐ์ง๋์ ์ ์ต๋๊ธธ์ด๋ก ๋์๋ค. ๊ธฐ๋ณธ์ ์ธ ์ด์งํ์ ํ์ด๋ก ๋ฌธ์ ํด๊ฒฐ! ์ฝ๋ import Foundation let input = readLine()!.split(separator: " ").map {Int(String($0))!} let k = input[0], n = input[1] var arrs = [Int]() for _ in 0..