From 35ab139cebb5825a5367256ee4fdd584f1261d4d Mon Sep 17 00:00:00 2001 From: sookyung Date: Sat, 24 Jun 2023 00:37:11 +0900 Subject: [PATCH 1/2] [Week11] Kruskal&Prim --- ...4\355\201\254\354\227\260\352\262\260 .py" | 31 +++++++++++++++++++ ...50\353\213\235\355\212\270\353\246\254.py" | 29 +++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 "11-Kruskal&Prim/sookyung/\353\204\244\355\212\270\354\233\214\355\201\254\354\227\260\352\262\260 .py" create mode 100644 "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" 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\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 From 2311acd9e8b66c918b71ba3b15415e874faa2e7f Mon Sep 17 00:00:00 2001 From: sookyung Date: Sun, 25 Jun 2023 15:31:15 +0900 Subject: [PATCH 2/2] =?UTF-8?q?+=EC=B6=94=EA=B0=80=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...35 \354\266\234\353\240\245\355\225\230\352\270\260.sql" | 6 ++++++ ...44\355\212\270 \352\265\254\355\225\230\352\270\260.sql" | 4 ++++ 2 files changed, 10 insertions(+) create mode 100644 "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" create mode 100644 "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" 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/\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