๐กsolutions )
๐ฌ ์ ์ ์ด ์ฐ๊ฒฐ๋ผ ์๋ ํํ๋ฅผ ๋ํ๋ด๋ adj ์ธ์ ํ๋ ฌ ๋ง๋ค๊ธฐ
๐ฌ ์ธ์ ํ๋ ฌ์ for๋ฌธ์ผ๋ก ๋๋ฉฐ ์ฐ๊ฒฐ๋ผ ์๋ ์ ์ ์ ํ๋์ฉ ๋์ด๋ณด๊ธฐ
๐ฌ์ธ์ ํ๋ ฌ์์ remove() ๋ฉ์๋๋ฅผ ํตํด ํด๋น ์ก์ ํ์ ์ ๊ฑฐํด์ค ํ ์ฐ๊ฒฐ ์ํ๋ฅผ ์์๋ณด๊ธฐ ์ํด connect()ํจ์ ์คํํ๊ธฐ -> ๋ฐํ๋๋ visit ๋ฐฐ์ด, ์ด๋ ์ฐ๊ฒฐ๋ผ ์๋ ์ก์ ํ์ visit๋ฐฐ์ด์์ 1๋ก ๋ํ๋๊ณ , ๋๋จธ์ง ์ก์ ํ์ 0์ผ๋ก ๋ํ๋ด๊ธฐ ๋๋ฌธ์ ์ด๋ค์ ์นด์ดํธ ํ ๊ฐ์ ์ฐจ์ด์ ์ต์๊ฐ์ ๊ตฌํ๋ฉด ๋๋ค.
๐ฌ ์ ์ ๋์๋ ๊ฒ์ ๋ค์ ์ฐ๊ฒฐํด์ฃผ์ด ๋ค์ ์ก์ ํ์ ๋น๊ตํด์ผ ํ๋ค. -> for๋ฌธ์ ๋๋ฆฌ๊ณ ์๊ธฐ ๋๋ฌธ์ ์์์ ์ง์ฅ์ ์ฃผ์ง ์๊ธฐ ์ํด adj[i] = [tmp] + adj[i] ์ผ๋ก ์ธ์ ๋ฆฌ์คํธ ๋งจ ์์ชฝ์ผ๋ก ํ์ธํ ์ก์ ํ(tmp)๋ฅผ ๋ถ์ฌ์ค์ผ ํ๋ ๊ฑธ ์ฃผ์ํด์ผ ํ๋ค.
๐จ๐ปcode )
def connect(lst, i, adj):
stack = []
for i in lst:
stack.append(i)
visit = [0]*len(adj)
visit[i-1] = 1
while stack:
a = stack.pop()
for i in adj[a-1]:
if not visit[i-1]:
stack.append(i)
visit[i-1] = 1
return visit
def solution(n, wires):
adj = [[] for _ in range(n)]
for a, b in wires:
adj[a-1].append(b)
adj[b-1].append(a)
print(adj)
min_v = 100
for i in range(n):
for j in range(len(adj[i])):
tmp = adj[i][j]
adj[i].remove(adj[i][j])
if adj[i]:
res = connect(adj[i], i, adj)
min_v = min(min_v, abs(res.count(0) - res.count(1)))
adj[i] = [tmp] + adj[i]
return min_v
๐description )
๋ฌธ์ ์ค๋ช
n๊ฐ์ ์ก์ ํ์ด ์ ์ ์ ํตํด ํ๋์ ํธ๋ฆฌ ํํ๋ก ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ๋น์ ์ ์ด ์ ์ ๋ค ์ค ํ๋๋ฅผ ๋์ด์ ํ์ฌ์ ์ ๋ ฅ๋ง ๋คํธ์ํฌ๋ฅผ 2๊ฐ๋ก ๋ถํ ํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋, ๋ ์ ๋ ฅ๋ง์ด ๊ฐ๊ฒ ๋๋ ์ก์ ํ์ ๊ฐ์๋ฅผ ์ต๋ํ ๋น์ทํ๊ฒ ๋ง์ถ๊ณ ์ ํฉ๋๋ค.
์ก์ ํ์ ๊ฐ์ n, ๊ทธ๋ฆฌ๊ณ ์ ์ ์ ๋ณด wires๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ ์ ๋ค ์ค ํ๋๋ฅผ ๋์ด์ ์ก์ ํ ๊ฐ์๊ฐ ๊ฐ๋ฅํ ๋น์ทํ๋๋ก ๋ ์ ๋ ฅ๋ง์ผ๋ก ๋๋์์ ๋, ๋ ์ ๋ ฅ๋ง์ด ๊ฐ์ง๊ณ ์๋ ์ก์ ํ ๊ฐ์์ ์ฐจ์ด(์ ๋๊ฐ)๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- n์ 2 ์ด์ 100 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- wires๋ ๊ธธ์ด๊ฐ n-1์ธ ์ ์ํ 2์ฐจ์ ๋ฐฐ์ด์
๋๋ค.
- wires์ ๊ฐ ์์๋ [v1, v2] 2๊ฐ์ ์์ฐ์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ด๋ ์ ๋ ฅ๋ง์ v1๋ฒ ์ก์ ํ๊ณผ v2๋ฒ ์ก์ ํ์ด ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- 1 ≤ v1 < v2 ≤ n ์ ๋๋ค.
- ์ ๋ ฅ๋ง ๋คํธ์ํฌ๊ฐ ํ๋์ ํธ๋ฆฌ ํํ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
nwiresresult
9 | [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] | 3 |
4 | [[1,2],[2,3],[3,4]] | 0 |
7 | [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] | 1 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ค์ ๊ทธ๋ฆผ์ ์ฃผ์ด์ง ์ ๋ ฅ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ๋ํ๋ธ ๊ฒ์ ๋๋ค.
- 4๋ฒ๊ณผ 7๋ฒ์ ์ฐ๊ฒฐํ๋ ์ ์ ์ ๋์ผ๋ฉด ๋ ์ ๋ ฅ๋ง์ ๊ฐ 6๊ฐ์ 3๊ฐ์ ์ก์ ํ์ ๊ฐ์ง๋ฉฐ, ์ด๋ณด๋ค ๋ ๋น์ทํ ๊ฐ์๋ก ์ ๋ ฅ๋ง์ ๋๋ ์ ์์ต๋๋ค.
- ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ 3๋ฒ๊ณผ 4๋ฒ์ ์ฐ๊ฒฐํ๋ ์ ์ ์ ๋์ด๋ ์ต์ ์ ์ ๋ต์ ๋์ถํ ์ ์์ต๋๋ค.