์์ ์ C++๋ก ํ๋ค๊ฐ, ํ ์คํธ์ผ์ด์ค๋ง ๋ค ๋ง์ถ๊ณ , ์ฑ์ ๊ฒฐ๊ณผ์์ ์ ํ์ฑ ๋ฌธ์ ์คํจํด์ ํฌ๊ธฐํ๋ ๋ฌธ์ ๋ค. ์๋ฒ์ ํ์ด์ฌ์ผ๋ก ๋ค์ ํ์ด๋ด์ผ๊ฒ ๋ค!
๋ฌธ์ ์ค๋ช
n๊ฐ์ ์ก์ ํ์ด ์ ์ ์ ํตํด ํ๋์ ํธ๋ฆฌ ํํ๋ก ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ๋น์ ์ ์ด ์ ์ ๋ค ์ค ํ๋๋ฅผ ๋์ด์ ํ์ฌ์ ์ ๋ ฅ๋ง ๋คํธ์ํฌ๋ฅผ 2๊ฐ๋ก ๋ถํ ํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋, ๋ ์ ๋ ฅ๋ง์ด ๊ฐ๊ฒ ๋๋ ์ก์ ํ์ ๊ฐ์๋ฅผ ์ต๋ํ ๋น์ทํ๊ฒ ๋ง์ถ๊ณ ์ ํฉ๋๋ค.
์ก์ ํ์ ๊ฐ์ n, ๊ทธ๋ฆฌ๊ณ ์ ์ ์ ๋ณด wires๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ ์ ๋ค ์ค ํ๋๋ฅผ ๋์ด์ ์ก์ ํ ๊ฐ์๊ฐ ๊ฐ๋ฅํ ๋น์ทํ๋๋ก ๋ ์ ๋ ฅ๋ง์ผ๋ก ๋๋์์ ๋, ๋ ์ ๋ ฅ๋ง์ด ๊ฐ์ง๊ณ ์๋ ์ก์ ํ ๊ฐ์์ ์ฐจ์ด(์ ๋๊ฐ)๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- n์ 2 ์ด์ 100 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- wires๋ ๊ธธ์ด๊ฐ n-1์ธ ์ ์ํ 2์ฐจ์ ๋ฐฐ์ด์
๋๋ค.
- wires์ ๊ฐ ์์๋ [v1, v2] 2๊ฐ์ ์์ฐ์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ด๋ ์ ๋ ฅ๋ง์ v1๋ฒ ์ก์ ํ๊ณผ v2๋ฒ ์ก์ ํ์ด ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- 1 ≤ v1 < v2 ≤ n ์ ๋๋ค.
- ์ ๋ ฅ๋ง ๋คํธ์ํฌ๊ฐ ํ๋์ ํธ๋ฆฌ ํํ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
n | wires | result |
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๋ฒ์ ์ฐ๊ฒฐํ๋ ์ ์ ์ ๋์ด๋ ์ต์ ์ ์ ๋ต์ ๋์ถํ ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ค์ ๊ทธ๋ฆผ์ ์ฃผ์ด์ง ์ ๋ ฅ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ๋ธ ๊ฒ์ ๋๋ค.
- 2๋ฒ๊ณผ 3๋ฒ์ ์ฐ๊ฒฐํ๋ ์ ์ ์ ๋์ผ๋ฉด ๋ ์ ๋ ฅ๋ง์ด ๋ชจ๋ 2๊ฐ์ ์ก์ ํ์ ๊ฐ์ง๊ฒ ๋๋ฉฐ, ์ด ๋ฐฉ๋ฒ์ด ์ต์ ์ ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- ๋ค์ ๊ทธ๋ฆผ์ ์ฃผ์ด์ง ์ ๋ ฅ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ๋ธ ๊ฒ์ ๋๋ค.
- 3๋ฒ๊ณผ 7๋ฒ์ ์ฐ๊ฒฐํ๋ ์ ์ ์ ๋์ผ๋ฉด ๋ ์ ๋ ฅ๋ง์ด ๊ฐ๊ฐ 4๊ฐ์ 3๊ฐ์ ์ก์ ํ์ ๊ฐ์ง๊ฒ ๋๋ฉฐ, ์ด ๋ฐฉ๋ฒ์ด ์ต์ ์ ๋๋ค.
ํ์ด
- ์์ C++ ํ์ด๋ฅผ ๋ณด๋ฉด, ์ ๋ ฅ ๋ฐ์ดํฐ ๋ณํํ๋ ๊ฒ๋ถํฐ ๋ ธ๊ฐ๋ค์๋ค.
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<vector<int>> wires) {
int answer = 9999999;
vector<int> graph[n+1];
vector<char> visited(n+1, ' ');
sort(wires.begin(), wires.end());
for(int i=0;i<wires.size();i++){
graph[wires[i][0]].push_back(wires[i][1]);
graph[wires[i][1]].push_back(wires[i][0]);
}
for(int i=1;i<=n;i++){
sort(graph[i].begin(), graph[i].end());
}
for(int i=0;i<wires.size();i++){
fill(visited.begin(), visited.end(), ' ');
visited[wires[i][0]] = 'L';
visited[wires[i][1]] = 'R';
int left, right, sum = 0;
while(sum < n){
for(int z=1;z<=n;z++){
for(int y=0;y<graph[z].size();y++){
if(visited[graph[z][y]] == ' ') visited[graph[z][y]] = visited[z];
}
}
for(int z=n;z>0;z--){
for(int y=0;y<graph[z].size();y++){
if(visited[graph[z][y]] == ' ') visited[graph[z][y]] = visited[z];
}
}
left = 0;
right = 0;
for(int z=1;z<=n;z++){
if(visited[z]=='L')left++;
if(visited[z]=='R')right++;
}
sum = left + right;
answer = min(answer, abs(left - right));
}
}
return answer;
}
- ํ ์คํธ ์ผ์ด์ค๋ ๋ค ๋ง์ท๋๋ฐ...
ํ
์คํธ 1
์
๋ ฅ๊ฐ ใ 9, [[1, 3], [2, 3], [3, 4], [4, 5], [4, 6], [4, 7], [7, 8], [7, 9]]
๊ธฐ๋๊ฐ ใ 3
์คํ ๊ฒฐ๊ณผ ใ ํ
์คํธ๋ฅผ ํต๊ณผํ์์ต๋๋ค.
ํ
์คํธ 2
์
๋ ฅ๊ฐ ใ 4, [[1, 2], [2, 3], [3, 4]]
๊ธฐ๋๊ฐ ใ 0
์คํ ๊ฒฐ๊ณผ ใ ํ
์คํธ๋ฅผ ํต๊ณผํ์์ต๋๋ค.
ํ
์คํธ 3
์
๋ ฅ๊ฐ ใ 7, [[1, 2], [2, 7], [3, 7], [3, 4], [4, 5], [6, 7]]
๊ธฐ๋๊ฐ ใ 1
์คํ ๊ฒฐ๊ณผ ใ ํ
์คํธ๋ฅผ ํต๊ณผํ์์ต๋๋ค.
ํ
์คํธ 4
์
๋ ฅ๊ฐ ใ 8, [[1, 2], [1, 3], [1, 4], [4, 5], [5, 6], [6, 7], [6, 8]]
๊ธฐ๋๊ฐ ใ 0
์คํ ๊ฒฐ๊ณผ ใ ํ
์คํธ๋ฅผ ํต๊ณผํ์์ต๋๋ค.
- ์ฑ์ ์์ ์คํจํ๋ค.
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.08ms, 4.27MB)
ํ
์คํธ 2 ใ ํต๊ณผ (2.64ms, 4.31MB)
ํ
์คํธ 3 ใ ์คํจ (0.12ms, 4.15MB)
ํ
์คํธ 4 ใ ์คํจ (0.13ms, 4.14MB)
ํ
์คํธ 5 ใ ์คํจ (0.14ms, 4.33MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 3.66MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.01ms, 4.26MB)
ํ
์คํธ 8 ใ ์คํจ (0.04ms, 3.69MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.03ms, 4.34MB)
ํ
์คํธ 10 ใ ์คํจ (0.75ms, 4.31MB)
ํ
์คํธ 11 ใ ์คํจ (0.72ms, 4.25MB)
ํ
์คํธ 12 ใ ์คํจ (0.63ms, 4.28MB)
ํ
์คํธ 13 ใ ์คํจ (0.72ms, 4.13MB)
- ๊ทผ๋ฐ ๊ทธ ๋๋ ์ง๊ธ์ด๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ์์ ํฌ๊ฒ ๋ฌ๋ผ์ง ๊ฑด ์๋ ๊ฒ ๊ฐ๋ค. (๋ฌด์ง์ฑใ ใ ใ )
- ๊ทธ๋ฆฌ๊ณ ์ด๊ฑฐ ์ ๋ชป ํ์๋๋ฐ ๊ทธ๋ฅ ๋์ด๊ฐ๋์ง ๊ธฐ์ต์ด ์๋๋ค...
- ์ฝ๋ฉํ ์คํธ ๊ณ ๋์ Kit์ ์๋ ์์ ํ์ ๋ฌธ์ 7๊ฐ ์ค์ ์ ์ผํ๊ฒ ๋ชป ํ๊ณ ๋์ด๊ฐ๋ ๋ฌธ์ ์๋ค.
- ๋ฌธ์ ๋ถํฐ ๋ค์ ์ ๋๋ก ์ดํดํด๋ณด๊ธฐ๋ก...
- ์ด๊ฑด ์ง์ง ๋ญ๊ฐ ๊ผผ์ ์์ด ํ๋์ฉ ์๋ผ์ ํด๋ด์ผํ๋ ๊ฑด๊ฐ?
- ์ผ๋จ ์ํค๋๋๋ก ์์ ํ์์ผ๋ก ํ์ด๋ด.
def solution(n, wires):
answer = 100
for i in range(n-1):
print(i, wires[i],"์ ๋์ด๋ด
๋๋ค ==================")
heap = wires.copy()
heap.pop(i)
L = set()
R = set()
L.add(wires[i][0])
R.add(wires[i][1])
while heap:
a, b = heap.pop(0)
if a in L or b in L:
L.add(a)
L.add(b)
elif a in R or b in R:
R.add(a)
R.add(b)
else:
heap.append([a, b])
print("L:", L)
print("R:", R)
answer = min(abs(len(L)-len(R)), answer)
return answer
- ํ ์คํธ ์ผ์ด์ค ๋ชจ๋ ์ ํ๋ฆผ
ํ
์คํธ 1
์
๋ ฅ๊ฐ ใ 9, [[1, 3], [2, 3], [3, 4], [4, 5], [4, 6], [4, 7], [7, 8], [7, 9]]
๊ธฐ๋๊ฐ ใ 3
์คํ ๊ฒฐ๊ณผ ใ ํ
์คํธ๋ฅผ ํต๊ณผํ์์ต๋๋ค.
์ถ๋ ฅ ใ 0 [1, 3] ์ ๋์ด๋ด
๋๋ค ==================
L: {1}
R: {2, 3, 4, 5, 6, 7, 8, 9}
1 [2, 3] ์ ๋์ด๋ด
๋๋ค ==================
L: {2}
R: {1, 3, 4, 5, 6, 7, 8, 9}
2 [3, 4] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3}
R: {4, 5, 6, 7, 8, 9}
3 [4, 5] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 6, 7, 8, 9}
R: {5}
4 [4, 6] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 5, 7, 8, 9}
R: {6}
5 [4, 7] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 5, 6}
R: {8, 9, 7}
6 [7, 8] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 5, 6, 7, 9}
R: {8}
7 [7, 9] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 5, 6, 7, 8}
R: {9}
ํ
์คํธ 2
์
๋ ฅ๊ฐ ใ 4, [[1, 2], [2, 3], [3, 4]]
๊ธฐ๋๊ฐ ใ 0
์คํ ๊ฒฐ๊ณผ ใ ํ
์คํธ๋ฅผ ํต๊ณผํ์์ต๋๋ค.
์ถ๋ ฅ ใ 0 [1, 2] ์ ๋์ด๋ด
๋๋ค ==================
L: {1}
R: {2, 3, 4}
1 [2, 3] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2}
R: {3, 4}
2 [3, 4] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3}
R: {4}
ํ
์คํธ 3
์
๋ ฅ๊ฐ ใ 7, [[1, 2], [2, 7], [3, 7], [3, 4], [4, 5], [6, 7]]
๊ธฐ๋๊ฐ ใ 1
์คํ ๊ฒฐ๊ณผ ใ ํ
์คํธ๋ฅผ ํต๊ณผํ์์ต๋๋ค.
์ถ๋ ฅ ใ 0 [1, 2] ์ ๋์ด๋ด
๋๋ค ==================
L: {1}
R: {2, 3, 4, 5, 6, 7}
1 [2, 7] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2}
R: {3, 4, 5, 6, 7}
2 [3, 7] ์ ๋์ด๋ด
๋๋ค ==================
L: {3, 4, 5}
R: {1, 2, 6, 7}
3 [3, 4] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 6, 7}
R: {4, 5}
4 [4, 5] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 6, 7}
R: {5}
5 [6, 7] ์ ๋์ด๋ด
๋๋ค ==================
L: {6}
R: {1, 2, 3, 4, 5, 7}
ํ
์คํธ 4
์
๋ ฅ๊ฐ ใ 8, [[1, 2], [1, 3], [1, 4], [4, 5], [5, 6], [6, 7], [6, 8]]
๊ธฐ๋๊ฐ ใ 0
์คํ ๊ฒฐ๊ณผ ใ ํ
์คํธ๋ฅผ ํต๊ณผํ์์ต๋๋ค.
์ถ๋ ฅ ใ 0 [1, 2] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 3, 4, 5, 6, 7, 8}
R: {2}
1 [1, 3] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 4, 5, 6, 7, 8}
R: {3}
2 [1, 4] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3}
R: {4, 5, 6, 7, 8}
3 [4, 5] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4}
R: {8, 5, 6, 7}
4 [5, 6] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 5}
R: {8, 6, 7}
5 [6, 7] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 5, 6, 8}
R: {7}
6 [6, 8] ์ ๋์ด๋ด
๋๋ค ==================
L: {1, 2, 3, 4, 5, 6, 7}
R: {8}
- ์ต์ ํ ํด์ ์ ์ถํด๋ณธ๋ค.
- ์ฑ๊ณต! ์ง์ง ์์ ํ์ ๋ฌธ์ ์๊ตฌ๋...;;;
def solution(n, wires):
answer = 100
for i in range(n-1):
heap = wires.copy()
heap.pop(i)
L, R = set(), set()
L.add(wires[i][0])
R.add(wires[i][1])
while heap:
a, b = heap.pop(0)
if a in L or b in L:
L.add(a)
L.add(b)
elif a in R or b in R:
R.add(a)
R.add(b)
else:
heap.append([a, b])
answer = min(abs(len(L)-len(R)), answer)
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (2.16ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (35.27ms, 10.1MB)
ํ
์คํธ 3 ใ ํต๊ณผ (16.33ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (4.78ms, 10.2MB)
ํ
์คํธ 5 ใ ํต๊ณผ (10.80ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.34ms, 10.3MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.18ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (8.34ms, 10.2MB)
ํ
์คํธ 11 ใ ํต๊ณผ (8.90ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (9.38ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (8.16ms, 10.2MB)
- ๊ณ ์์ ํ์ด... ์ธ์ค ์์๋๋ฐ ๋๋ฆฌ๋ค.
def solution(n, wires):
ans = n
for sub in (wires[i+1:] + wires[:i] for i in range(len(wires))):
s = set(sub[0])
[s.update(v) for _ in sub for v in sub if set(v) & s]
ans = min(ans, abs(2 * len(s) - n))
return ans
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (312.04ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (269.78ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (221.52ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (220.82ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (272.53ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 8 ใ ํต๊ณผ (1.85ms, 10.1MB)
ํ
์คํธ 9 ใ ํต๊ณผ (2.72ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (212.52ms, 10.1MB)
ํ
์คํธ 11 ใ ํต๊ณผ (282.40ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (224.79ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (210.24ms, 10.2MB)
- ๊ธฐ๋ณธ์ ์ผ๋ก ์๋๋ฅผ ์กฐ๊ธ ๋จน์ง๋ง, ๊ทธ๋ํ๊ฐ ๋ณต์กํด์ก์ ๋ ๋น ๋ฅด๋ค.
- def find(a)๋๊ฑธ ๋ง๋ค์ด์ ํ์ํ๊ณ ํฉ์น๋ค.
uf = []
def find(a):
global uf
if uf[a] < 0: return a
uf[a] = find(uf[a])
return uf[a]
def merge(a, b):
global uf
pa = find(a)
pb = find(b)
if pa == pb: return
uf[pa] += uf[pb]
uf[pb] = pa
def solution(n, wires):
global uf
answer = int(1e9)
k = len(wires)
for i in range(k):
uf = [-1 for _ in range(n+1)]
tmp = [wires[x] for x in range(k) if x != i]
for a, b in tmp: merge(a, b)
v = [x for x in uf[1:] if x < 0]
answer = min(answer, abs(v[0]-v[1]))
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (7.58ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (8.56ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (8.71ms, 10.3MB)
ํ
์คํธ 4 ใ ํต๊ณผ (4.35ms, 10.2MB)
ํ
์คํธ 5 ใ ํต๊ณผ (5.30ms, 10.2MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.02ms, 10.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.28ms, 10.2MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.21ms, 10.4MB)
ํ
์คํธ 10 ใ ํต๊ณผ (5.35ms, 10MB)
ํ
์คํธ 11 ใ ํต๊ณผ (6.33ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (5.73ms, 10.4MB)
ํ
์คํธ 13 ใ ํต๊ณผ (5.07ms, 10.3MB)
- ์ฐพ์๋ค. ์ง์ง ๊ณ ์๋ค... ์ด๊ฒ ์ ์ผ ๋น ๋ฅด๋ค?
- ์ด๊ฑฐ ๋ญ์ง? ์ค์ผ ๋นจ๋ผ???
- ๋ด๊ฑฐ ๋ํ๋ก ๋ฐ๊ฟ๋ ์ด ๋ฐฉ์๋ณด๋ค ๋น ๋ฅด์ง ์์ ๊ฒ ๊ฐ๋ค. pop, push๋ฅผ ์์ฐ๋ ๋ฐฉ์์ผ๋ก ํ์ด์ผ...
- ์ํผ ์ฝ๋๊ฐ ๊ธธ์ด์ ๊ธด๊ฐ๋ฏผ๊ฐ ํ๋๋ฐ ๊ฐ๋น ๋ฆ.
def solution(n, wires):
tree = [[] for _ in range(n + 1)]
for a, b in wires:
tree[a].append(b)
tree[b].append(a)
visited = [False] * (n + 1)
child = [0] * (n + 1)
"""๊ฐ์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ"""
def dfs(node):
visited[node] = True
for next in tree[node]:
if not visited[next]:
child[node] += dfs(next) + child[next]
return 1
dfs(1)
result = n
for c in child:
result = min(result, abs(n - 2 * (c + 1)))
return result
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.12ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.07ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.07ms, 10.1MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.11ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.07ms, 10.2MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.07ms, 10.3MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.07ms, 10.1MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.07ms, 10.1MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.07ms, 10.4MB)
- ๊ทธ๋ฆฌ๊ณ
for next๋ ๋ญ์ง? ์ด๋ฐ ๊ตฌ๋ฌธ๋ ์๊ตฌ๋...๊ทธ๋ฅ ๋ณ์์๋ค. ใ ก.ใ ก;;;;;- ์์๋นใ ใ ใ ใ ใ
- ๋ฐ๋ณต๋ฌธ ์ ๋ฆฌ ์ข ํด๋์ (for, while)
- break : ๋ฐ๋ณต๋ฌธ ์ข ๋ฃ
- continue : ๋ค์ ๋ช ๋ น์ด๋ฅผ ๋๊ธฐ๊ณ , ์ดํ ๋ฐ๋ณต์ผ๋ก (๋ฐ๋ณต๋ฌธ ์ ์ง)
- pass
- iter, next ํจ์
- iter๋ ๋ฐ๋ณต์ ๋๋ผ ๊ฐ์ ์ง์ ํ๋ฉด ํน์ ๊ฐ์ด ๋์ฌ ๋ ๋ฐ๋ณต์ ๋๋ ๋๋ค.
- next๋ ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค.
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ํ ์ธ ํ์ฌ (0) | 2023.02.20 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ํผ์ ๋๊ธฐ์ ๋ฌ์ธ (0) | 2023.02.20 |
ํ๋ก๊ทธ๋๋จธ์ค ํ๋ฐฐ์์ (1) | 2023.02.19 |
ํ๋ก๊ทธ๋๋จธ์ค ๋กค์ผ์ดํฌ ์๋ฅด๊ธฐ (0) | 2023.02.18 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ์์ฌ์ (0) | 2023.02.18 |