diff --git "a/11-Kruskal&Prim/sookyung/12\354\204\270 \354\235\264\355\225\230\354\235\270 \354\227\254\354\236\220 \355\231\230\354\236\220 \353\252\251\353\241\235 \354\266\234\353\240\245\355\225\230\352\270\260.sql" "b/11-Kruskal&Prim/sookyung/12\354\204\270 \354\235\264\355\225\230\354\235\270 \354\227\254\354\236\220 \355\231\230\354\236\220 \353\252\251\353\241\235 \354\266\234\353\240\245\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..602b002 --- /dev/null +++ "b/11-Kruskal&Prim/sookyung/12\354\204\270 \354\235\264\355\225\230\354\235\270 \354\227\254\354\236\220 \355\231\230\354\236\220 \353\252\251\353\241\235 \354\266\234\353\240\245\355\225\230\352\270\260.sql" @@ -0,0 +1,6 @@ +SELECT PT_NAME, PT_NO, GEND_CD, AGE, + CASE WHEN TLNO IS NULL THEN 'NONE' + ELSE TLNO END AS TLNO +FROM PATIENT +WHERE AGE <= 12 AND GEND_CD ='W' +ORDER BY AGE DESC, PT_NAME; \ No newline at end of file diff --git "a/11-Kruskal&Prim/sookyung/\353\204\244\355\212\270\354\233\214\355\201\254\354\227\260\352\262\260 .py" "b/11-Kruskal&Prim/sookyung/\353\204\244\355\212\270\354\233\214\355\201\254\354\227\260\352\262\260 .py" new file mode 100644 index 0000000..db337f6 --- /dev/null +++ "b/11-Kruskal&Prim/sookyung/\353\204\244\355\212\270\354\233\214\355\201\254\354\227\260\352\262\260 .py" @@ -0,0 +1,31 @@ +def find(a): + if a == arr[a]: + return a + arr[a] = find(arr[a]) + return arr[a] + +def union(from_node, to_node): + a = find(from_node) + b = find(to_node) + if a != b: + arr[a] = b + return True + return False + +n = int(input()) +m = int(input()) +arr = [i for i in range(n+1)] + +networks = [] +for _ in range(m): + network = list(map(int, input().split())) + networks.append(network) + +networks.sort(key=lambda x: x[2]) + +res = 0 +for network in networks: + if union(network[0], network[1]): + res += network[2] + +print(res) diff --git "a/11-Kruskal&Prim/sookyung/\354\236\254\352\265\254\353\247\244\352\260\200 \354\235\274\354\226\264\353\202\234 \354\203\201\355\222\210\352\263\274 \355\232\214\354\233\220 \353\246\254\354\212\244\355\212\270 \352\265\254\355\225\230\352\270\260.sql" "b/11-Kruskal&Prim/sookyung/\354\236\254\352\265\254\353\247\244\352\260\200 \354\235\274\354\226\264\353\202\234 \354\203\201\355\222\210\352\263\274 \355\232\214\354\233\220 \353\246\254\354\212\244\355\212\270 \352\265\254\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..4829364 --- /dev/null +++ "b/11-Kruskal&Prim/sookyung/\354\236\254\352\265\254\353\247\244\352\260\200 \354\235\274\354\226\264\353\202\234 \354\203\201\355\222\210\352\263\274 \355\232\214\354\233\220 \353\246\254\354\212\244\355\212\270 \352\265\254\355\225\230\352\270\260.sql" @@ -0,0 +1,4 @@ +SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE +GROUP BY USER_ID, PRODUCT_ID +HAVING COUNT(USER_ID) >= 2 +ORDER BY USER_ID, PRODUCT_ID DESC \ No newline at end of file diff --git "a/11-Kruskal&Prim/sookyung/\354\265\234\354\206\214\354\212\244\355\214\250\353\213\235\355\212\270\353\246\254.py" "b/11-Kruskal&Prim/sookyung/\354\265\234\354\206\214\354\212\244\355\214\250\353\213\235\355\212\270\353\246\254.py" new file mode 100644 index 0000000..90e1e47 --- /dev/null +++ "b/11-Kruskal&Prim/sookyung/\354\265\234\354\206\214\354\212\244\355\214\250\353\213\235\355\212\270\353\246\254.py" @@ -0,0 +1,29 @@ +def find(x): + if x != root[x]: + root[x] = find(root[x]) + return root[x] + + +v, e = map(int, input().split()) +root = [i for i in range(v + 1)] +arr = [] +answer = 0 + +for _ in range(e): + arr.append(list(map(int, input().split()))) + +arr.sort(key=lambda x: x[2]) + +for a, b, c in arr: + arr1 = find(a) + arr2 = find(b) + + if arr1 != arr2: + if arr1 > arr2: + root[arr1] = arr2 + else: + root[arr2] = arr1 + + answer += c + +print(answer) \ No newline at end of file