From 1fec4561362c422df7d9032cf93f106d00f76a46 Mon Sep 17 00:00:00 2001 From: JunYoungKr Date: Fri, 19 Jan 2024 02:13:12 +0900 Subject: [PATCH 1/9] =?UTF-8?q?=EB=96=A1=EB=B3=B6=EC=9D=B4=EB=96=A1?= =?UTF-8?q?=EB=A7=8C=EB=93=A4=EA=B8=B0=5F=EC=A4=80=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\244\200\354\230\201.py" | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 "\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264\353\226\241\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" diff --git "a/\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264\353\226\241\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264\353\226\241\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" new file mode 100644 index 0000000..d1b1360 --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264\353\226\241\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" @@ -0,0 +1,41 @@ +N, M = map(int, input().split()) +dduck = list(map(int, input().split())) + +dduck.sort() + +mid = max(dduck) // 2 +# print(mid) + +for i in range(0, len(dduck)): + sum = 0 + res = dduck[i] - mid + sum += res + # print("sum:", sum) + if sum == M: + print(dduck[i]) + break + +# 정답 코드 (이진 탐색) +start = 0 +end = max(dduck) + +# 절단 위치 +result = 0 + +while (start <= end): + # 총 잘리는 떡의 길이 + total = 0 + mid = (start + end) // 2 + + for i in dduck: + # 절단기 길이보다 떡 길이가 길면 절단 가능 + if i > mid: + total += i - mid + + if total < M: + end = mid - 1 + else: + result = mid + start = mid + 1 + +print(result) From 7f05631dfb6afdf07a4ee25b75a4bcb40125f515 Mon Sep 17 00:00:00 2001 From: JunYoungKr Date: Fri, 19 Jan 2024 13:50:27 +0900 Subject: [PATCH 2/9] =?UTF-8?q?=EC=A0=95=EB=A0=AC=EB=90=9C=20=EB=B0=B0?= =?UTF-8?q?=EC=97=B4=EC=97=90=EC=84=9C=20=ED=8A=B9=EC=A0=95=20=EC=88=98?= =?UTF-8?q?=EC=9D=98=20=EA=B0=9C=EC=88=98=20=EA=B5=AC=ED=95=98=EA=B8=B0=5F?= =?UTF-8?q?=EC=A4=80=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\244\200\354\230\201.py" | 104 ++++++++++++++++++ .../\354\244\200\354\230\201.py" | 0 2 files changed, 104 insertions(+) create mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\354\240\225\353\240\254\353\220\234\353\260\260\354\227\264\354\227\220\354\204\234\355\212\271\354\240\225\354\210\230\354\235\230\352\260\234\354\210\230\352\265\254\355\225\230\352\270\260/\354\244\200\354\230\201.py" rename "\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264\353\226\241\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" => "\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264_\353\226\241_\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" (100%) diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\354\240\225\353\240\254\353\220\234\353\260\260\354\227\264\354\227\220\354\204\234\355\212\271\354\240\225\354\210\230\354\235\230\352\260\234\354\210\230\352\265\254\355\225\230\352\270\260/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\354\240\225\353\240\254\353\220\234\353\260\260\354\227\264\354\227\220\354\204\234\355\212\271\354\240\225\354\210\230\354\235\230\352\260\234\354\210\230\352\265\254\355\225\230\352\270\260/\354\244\200\354\230\201.py" new file mode 100644 index 0000000..458de37 --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\354\240\225\353\240\254\353\220\234\353\260\260\354\227\264\354\227\220\354\204\234\355\212\271\354\240\225\354\210\230\354\235\230\352\260\234\354\210\230\352\265\254\355\225\230\352\270\260/\354\244\200\354\230\201.py" @@ -0,0 +1,104 @@ +from bisect import bisect_left, bisect_right + +# 내가 처음 풀었던 풀이 +N, x = map(int, input().split()) + +arr = list(map(int, input().split())) + +# 배열에 x가 없는 경우 -1 출력 + +# 이진 탐색을 이용하여 arr에서 x와 같은 수까지 start와 end를 늘려가다가 더 이상 같이 않을 때 멈추고 start와 end의 길이를 구함 + +start = 0 +end = len(arr) - 1 + + +while start <= end: + # mid = (start + end) // 2 + # print(mid) + + # start < x + if arr[start] < x: + start += 1 + # print("start, end:", start, end) + # if arr[start] == x: + # break + # x < end + if arr[end] > x: + end -= 1 + # print("start, end:", start, end) + # if arr[end] == x: + # break + if arr[end] == x and arr[start] == x: + break + +print(end - start + 1) +print() + +################################################################################## +# 이진 탐색을 이용한 풀이 +print("이진 탐색을 이용한 풀이") + + +def binary_search(arr, x, find_first): + n = len(arr) + start = 0 + end = n-1 + result = -1 + + while start <= end: + mid = (start + end) // 2 + if arr[mid] < x: + start = mid + 1 + elif arr[mid] > x: + end = mid - 1 + else: + result = mid + if find_first: + # x가 처음 등장하는 위치를 찾습니다. + end = mid - 1 + else: + # x가 마지막으로 등장하는 위치를 찾습니다. + start = mid + 1 + return result + + +N, x = map(int, input().split()) + +arr = list(map(int, input().split())) + +# 이진 탐색으로 첫 번째와 마지막 위치를 찾기 +first_position = binary_search(arr, x, True) +last_position = binary_search(arr, x, False) + +# 결과 출력 +if first_position == -1 or last_position == -1: + print(-1) +else: + print(last_position - first_position + 1) + +print() + +################################################################################## +# bisect를 활용한 풀이 + + +def count_by_range(arr, left_value, right_value): + right_index = bisect_right(arr, right_value) + left_index = bisect_left(arr, left_value) + return right_index - left_index + + +N, x = map(int, input().split()) + +arr = list(map(int, input().split())) + +# 값이 [x, x] 범위에 있는 데이터의 개수 계산 +count = count_by_range(arr, x, x) + +# 값이 x인 원소가 존재하지 않는다면 +if count == 0: + print(-1) +# 값이 x인 원소가 존재한다면 +else: + print(count) diff --git "a/\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264\353\226\241\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264_\353\226\241_\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" similarity index 100% rename from "\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264\353\226\241\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" rename to "\354\235\264\354\275\224\355\205\214/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\353\226\241\353\263\266\354\235\264_\353\226\241_\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" From c25e4aaf85e9f6c39ff15d37d592b5cc8fa7f12c Mon Sep 17 00:00:00 2001 From: JunYoungKr Date: Fri, 19 Jan 2024 20:01:25 +0900 Subject: [PATCH 3/9] =?UTF-8?q?=EA=B3=A0=EC=A0=95=EC=A0=90=20=EC=B0=BE?= =?UTF-8?q?=EA=B8=B0=5F=EC=A4=80=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\244\200\354\230\201.py" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\352\263\240\354\240\225\354\240\220\354\260\276\352\270\260/\354\244\200\354\230\201.py" diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\352\263\240\354\240\225\354\240\220\354\260\276\352\270\260/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\352\263\240\354\240\225\354\240\220\354\260\276\352\270\260/\354\244\200\354\230\201.py" new file mode 100644 index 0000000..e589742 --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/07 \354\235\264\354\247\204 \355\203\220\354\203\211/\352\263\240\354\240\225\354\240\220\354\260\276\352\270\260/\354\244\200\354\230\201.py" @@ -0,0 +1,24 @@ +def binary_search(arr, start, end): + + if start > end: + return None + mid = (start + end) // 2 + while start <= end: + if arr[mid] == mid: + return mid + elif arr[mid] > mid: + return binary_search(arr, start, mid - 1) + else: + return binary_search(arr, mid + 1, end) + + +N = int(input()) + +arr = list(map(int, input().split())) + +index = binary_search(arr, 0, N-1) + +if index == None: + print(-1) +else: + print(index) From ad49deac8f7bb51472e473471ad95557650edd2a Mon Sep 17 00:00:00 2001 From: JunYoungKr Date: Sat, 20 Jan 2024 15:05:47 +0900 Subject: [PATCH 4/9] =?UTF-8?q?1=EB=A1=9C=20=EB=A7=8C=EB=93=A4=EA=B8=B0=5F?= =?UTF-8?q?=EC=A4=80=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes .../\354\244\200\354\230\201.py" | 21 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 .DS_Store create mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3a411bc04e360976f33314408c669c73bdc31a11 GIT binary patch literal 6148 zcmeHKJ4ysW5UtV;7BrYdFfgbiXlB?fYi70{z(6pO6~r~3$WwR*FQ9>euqGlVp2t@o z#AVjNz(ig_)$6XV*TcMEYDz?OvN$^s=|p4^7`%M{aEZf|Kadu?`C#2zqp*A=l$z1V3rC{0V+TRr~noCl>**-VdJet zMk+uBsKA#3{(UgGV=L?v$1N&ZZN* zQuWrs%XzOg_$l0Lp5Sg+2L&P8F)-ROHr|eRqbTdl*Eny5ePYm&4?2)P1Fj2=3jDPK EpD1-7*Z=?k literal 0 HcmV?d00001 diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" new file mode 100644 index 0000000..df0e37f --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" @@ -0,0 +1,21 @@ +X = int(input()) + +# 1~X까지 각각의 최단 거리를 기록하기 위해 크기가 30000인 배열을 만들고 0으로 초기화한다 + +arr = [0] * 30001 + +for i in range(2, X + 1): + # 이전요소까지의 바로 아래 단계까지 가는 거리를 더해주기 위해 1을 더함 + arr[i] = arr[i-1] + 1 + + # 2로 나누어질때 + if i % 2 == 0: + arr[i] = min(arr[i], arr[i//2] + 1) + # 3으로 나누어질때 + if i % 3 == 0: + arr[i] = min(arr[i], arr[i//3] + 1) + # 5로 나누어질때 + if i % 5 == 0: + arr[i] = min(arr[i], arr[i//5] + 1) + +print(arr[X]) From 9cd788dbc243e11f788d45bac3fccbf5e2ab6154 Mon Sep 17 00:00:00 2001 From: Youjiiin Date: Mon, 22 Jan 2024 16:45:49 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=ED=9A=A8=EC=9C=A8=EC=A0=81=EC=9D=B8=20?= =?UTF-8?q?=ED=99=94=ED=8F=90=5F=EC=9C=A0=EC=A7=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\234\240\354\247\204.py" | 1 + .../\354\234\240\354\247\204.py" | 19 +++++++++++++++ .../\354\234\240\354\247\204.py" | 24 +++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 "\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245_\352\263\265\354\202\254/\354\234\240\354\247\204.py" create mode 100644 "\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270_\355\231\224\355\216\230_\352\265\254\354\204\261/\354\234\240\354\247\204.py" diff --git "a/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234_\353\247\214\353\223\244\352\270\260/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234_\353\247\214\353\223\244\352\270\260/\354\234\240\354\247\204.py" index 94101cd..92cd5c0 100644 --- "a/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234_\353\247\214\353\223\244\352\270\260/\354\234\240\354\247\204.py" +++ "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234_\353\247\214\353\223\244\352\270\260/\354\234\240\354\247\204.py" @@ -1,5 +1,6 @@ x = int(input()) d = [0] * 30001 +# 연산의 횟수를 저장. # 보텀업 방식 for i in range(2, x + 1): diff --git "a/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245_\352\263\265\354\202\254/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245_\352\263\265\354\202\254/\354\234\240\354\247\204.py" new file mode 100644 index 0000000..bbc1d2e --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245_\352\263\265\354\202\254/\354\234\240\354\247\204.py" @@ -0,0 +1,19 @@ +n = int(input()) +d = [0] * 1001 +# 경우의 수를 저장 + +# 점화식을 어떻게 세우지? +# d[1], d[2]은 어떻게 처리할까 +# d[1]은 2 x 1로 1 +# d[2]은 2 x 2, 1 x 2로 2 +# 이후에는 +# i - 1 까지 채워져 있으면 1개의 경우가 있음 +# i - 2 까지 채워져 있으면 2개의 경우가 있음 +# di = di-1 + di-2 * 2 + +d[1] = 1 +d[2] = 2 +for i in range(3, n + 1): + d[i] = (d[i - 1] + d[i - 2] * 2) % 796796 + +print(d[n]) \ No newline at end of file diff --git "a/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270_\355\231\224\355\216\230_\352\265\254\354\204\261/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270_\355\231\224\355\216\230_\352\265\254\354\204\261/\354\234\240\354\247\204.py" new file mode 100644 index 0000000..38cf036 --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270_\355\231\224\355\216\230_\352\265\254\354\204\261/\354\234\240\354\247\204.py" @@ -0,0 +1,24 @@ +import sys +input = sys.stdin.readline + +n, m = 2, 15#map(int, input().split()) +money = [2, 3] +#for _ in range(n): +# money.append(int(input())) + +d = [10001] * (m + 1) +# 1로 만들기 + 거스름돈 문제 같은데 +# d를 10001개로 설정하는게 맞나? -> 1원이 있을 때? -> 화폐 단위별 개수를 저장하는 거라서 1001개가 맞지 않을까 +# d[1] = m일 듯. +# 점화식은? +# di = min(d[i - 1], d[m//i]) +d[0] = 0 +for i in range(n): + for j in range(money[i], m + 1): + if d[j - money[i]] != 10001: + d[j] = min(d[j], d[j - money[i]] + 1) + +if d[m] == 0: + print(-1) +else: + print(d[m]) \ No newline at end of file From 949f260bee320eb6069464eff1cd1275677e35d1 Mon Sep 17 00:00:00 2001 From: JunYoungKr Date: Mon, 22 Jan 2024 20:11:09 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=EB=AF=B8=EB=9E=98=EB=8F=84=EC=8B=9C=5F?= =?UTF-8?q?=EC=A4=80=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\244\200\354\230\201.py" | 0 .../\354\244\200\354\230\201.py" | 4 ++ .../\354\244\200\354\230\201.py" | 0 .../\354\244\200\354\230\201.py" | 46 +++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\352\260\234\353\257\270\354\240\204\354\202\254/\354\244\200\354\230\201.py" create mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245\352\263\265\354\202\254/\354\244\200\354\230\201.py" create mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270\355\231\224\355\217\220\352\265\254\354\204\261/\354\244\200\354\230\201.py" create mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/09 \354\265\234\353\213\250\352\262\275\353\241\234/\353\257\270\353\236\230\353\217\204\354\213\234/\354\244\200\354\230\201.py" diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\352\260\234\353\257\270\354\240\204\354\202\254/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\352\260\234\353\257\270\354\240\204\354\202\254/\354\244\200\354\230\201.py" new file mode 100644 index 0000000..e69de29 diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245\352\263\265\354\202\254/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245\352\263\265\354\202\254/\354\244\200\354\230\201.py" new file mode 100644 index 0000000..de99f8a --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245\352\263\265\354\202\254/\354\244\200\354\230\201.py" @@ -0,0 +1,4 @@ +N = int(input()) + +가로 = N +세로 = 2 diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270\355\231\224\355\217\220\352\265\254\354\204\261/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270\355\231\224\355\217\220\352\265\254\354\204\261/\354\244\200\354\230\201.py" new file mode 100644 index 0000000..e69de29 diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/09 \354\265\234\353\213\250\352\262\275\353\241\234/\353\257\270\353\236\230\353\217\204\354\213\234/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/09 \354\265\234\353\213\250\352\262\275\353\241\234/\353\257\270\353\236\230\353\217\204\354\213\234/\354\244\200\354\230\201.py" new file mode 100644 index 0000000..85ab6c8 --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/09 \354\265\234\353\213\250\352\262\275\353\241\234/\353\257\270\353\236\230\353\217\204\354\213\234/\354\244\200\354\230\201.py" @@ -0,0 +1,46 @@ +import sys +input = sys.stdin.readline + +# 무한대 설정 +INF = int(1e9) + +# 회사의 개수 N, 경로의 개수 M +N, M = map(int, input().split()) + +company = [[INF] * (N+1) for _ in range(N+1)] +# print(company) + +for i in range(1, N + 1): + for j in range(1, N + 1): + if i == j: + company[i][j] = 0 + +for i in range(M): + x, y = map(int, input().split()) + company[x][y] = 1 + company[y][x] = 1 + +# X와 K가 공백으로 구분되어 차례대로 주어진다 (1 <= K <= 100) +X, K = map(int, input().split()) + +for i in range(N): + for j in range(N): + print(company[i][j], end=' ') + print() + +# 여기까지 2차원 리스트에서 자기 자신까지의 거리는 0, 인접한 회사끼리는 1, 두 칸 이상 떨어진 회사는 INF로 초기화 + +# 다음 과정은 두 칸 떨어진 회사까지의 거리를 테이블에 적용시켜야함 + +for k in range(1, N + 1): + for a in range(1, N + 1): + for b in range(1, N + 1): + company[a][b] = min(company[a][b], company[a][k] + company[k][b]) + +# 결과 출력 +distance = company[1][k] + company[k][X] + +if distance >= INF: + print("-1") +else: + print(distance) From 0ca2b291609823eb09248267418d22dc13baaf8d Mon Sep 17 00:00:00 2001 From: JunYoungKr Date: Mon, 22 Jan 2024 20:15:30 +0900 Subject: [PATCH 7/9] =?UTF-8?q?=EB=AF=B8=EB=9E=98=EB=8F=84=EC=8B=9C=5F?= =?UTF-8?q?=EC=A4=80=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\244\200\354\230\201.py" | 0 .../\354\244\200\354\230\201.py" | 4 ---- .../\354\244\200\354\230\201.py" | 0 .../\354\244\200\354\230\201.py" | 0 .../\354\244\200\354\230\201.py" | 0 5 files changed, 4 deletions(-) delete mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\352\260\234\353\257\270\354\240\204\354\202\254/\354\244\200\354\230\201.py" delete mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245\352\263\265\354\202\254/\354\244\200\354\230\201.py" delete mode 100644 "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270\355\231\224\355\217\220\352\265\254\354\204\261/\354\244\200\354\230\201.py" rename "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" => "\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234_\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" (100%) rename "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/09 \354\265\234\353\213\250\352\262\275\353\241\234/\353\257\270\353\236\230\353\217\204\354\213\234/\354\244\200\354\230\201.py" => "\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\244\200\354\230\201.py" (100%) diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\352\260\234\353\257\270\354\240\204\354\202\254/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\352\260\234\353\257\270\354\240\204\354\202\254/\354\244\200\354\230\201.py" deleted file mode 100644 index e69de29..0000000 diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245\352\263\265\354\202\254/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245\352\263\265\354\202\254/\354\244\200\354\230\201.py" deleted file mode 100644 index de99f8a..0000000 --- "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\353\260\224\353\213\245\352\263\265\354\202\254/\354\244\200\354\230\201.py" +++ /dev/null @@ -1,4 +0,0 @@ -N = int(input()) - -가로 = N -세로 = 2 diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270\355\231\224\355\217\220\352\265\254\354\204\261/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270\355\231\224\355\217\220\352\265\254\354\204\261/\354\244\200\354\230\201.py" deleted file mode 100644 index e69de29..0000000 diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234_\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" similarity index 100% rename from "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/08 \353\213\244\354\235\264\353\202\230\353\257\271\355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" rename to "\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/1\353\241\234_\353\247\214\353\223\244\352\270\260/\354\244\200\354\230\201.py" diff --git "a/\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/09 \354\265\234\353\213\250\352\262\275\353\241\234/\353\257\270\353\236\230\353\217\204\354\213\234/\354\244\200\354\230\201.py" "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\244\200\354\230\201.py" similarity index 100% rename from "\354\235\264\354\275\224\355\205\214 \354\234\240\355\230\225\353\263\204 \352\270\260\354\266\234\353\254\270\354\240\234/09 \354\265\234\353\213\250\352\262\275\353\241\234/\353\257\270\353\236\230\353\217\204\354\213\234/\354\244\200\354\230\201.py" rename to "\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\244\200\354\230\201.py" From b96bf630dfdd327afb7bbd8bf113d01f9fa191f6 Mon Sep 17 00:00:00 2001 From: Youjiiin Date: Mon, 22 Jan 2024 21:31:53 +0900 Subject: [PATCH 8/9] =?UTF-8?q?=EB=AF=B8=EB=9E=98=EB=8F=84=EC=8B=9C=5F?= =?UTF-8?q?=EC=9C=A0=EC=A7=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\234\240\354\247\204.py" | 4 ++- .../\354\234\240\354\247\204.py" | 0 .../\354\234\240\354\247\204.py" | 28 +++++++++++++++ ...4\353\223\234 \354\233\214\354\205\234.py" | 35 +++++++++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 "\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\234\240\354\247\204.py" create mode 100644 "\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\355\224\214\353\241\234\354\235\264\353\223\234 \354\233\214\354\205\234.py" diff --git "a/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270_\355\231\224\355\216\230_\352\265\254\354\204\261/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270_\355\231\224\355\216\230_\352\265\254\354\204\261/\354\234\240\354\247\204.py" index 38cf036..f6aa30a 100644 --- "a/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270_\355\231\224\355\216\230_\352\265\254\354\204\261/\354\234\240\354\247\204.py" +++ "b/\354\235\264\354\275\224\355\205\214/08 \353\213\244\354\235\264\353\202\230\353\257\271 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215/\355\232\250\354\234\250\354\240\201\354\235\270_\355\231\224\355\216\230_\352\265\254\354\204\261/\354\234\240\354\247\204.py" @@ -8,10 +8,12 @@ d = [10001] * (m + 1) # 1로 만들기 + 거스름돈 문제 같은데 -# d를 10001개로 설정하는게 맞나? -> 1원이 있을 때? -> 화폐 단위별 개수를 저장하는 거라서 1001개가 맞지 않을까 +# d를 10001개로 설정하는게 맞나? -> 1원이 있을 때? -> 화폐 단위별 개수를 저장하는 거라서 101개가 맞지 않을까 # d[1] = m일 듯. # 점화식은? # di = min(d[i - 1], d[m//i]) +# 단단히 틀림. +# 왜 i - k 인가... d[0] = 0 for i in range(n): for j in range(money[i], m + 1): diff --git "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\234\240\354\247\204.py" new file mode 100644 index 0000000..e69de29 diff --git "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\354\240\204\353\263\264/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\354\240\204\353\263\264/\354\234\240\354\247\204.py" index e69de29..cf5741a 100644 --- "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\354\240\204\353\263\264/\354\234\240\354\247\204.py" +++ "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\354\240\204\353\263\264/\354\234\240\354\247\204.py" @@ -0,0 +1,28 @@ +INF = int(1e9) +n, m = map(int, input().split()) + +graph = [[INF] * (n + 1) for _ in range(n + 1)] + +# 자기 자신 0 +for a in range(1, n + 1): + for b in range(1, n + 1): + if a == b: + graph[a][b] = 0 + +for i in range(m): + a, b = map(int, input().split()) + graph[a][b] = 1 + graph[b][a] = 1 # 안썼었음 + +x, k = map(int, input().split()) + +for i in range(1, m + 1): + for a in range(1, m + 1): + for b in range(1, m + 1): + graph[a][b] = min(graph[a][b], graph[a][i] + graph[i][b]) + +distance = graph[1][k] + graph[k][x] +if distance == INF: + print(-1) +else: + print(distance) \ No newline at end of file diff --git "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\355\224\214\353\241\234\354\235\264\353\223\234 \354\233\214\354\205\234.py" "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\355\224\214\353\241\234\354\235\264\353\223\234 \354\233\214\354\205\234.py" new file mode 100644 index 0000000..57e78aa --- /dev/null +++ "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\355\224\214\353\241\234\354\235\264\353\223\234 \354\233\214\354\205\234.py" @@ -0,0 +1,35 @@ +INF = int(1e9) + +# 노드개수, 간선의 개수 +n = int(input()) +m = int(input()) + +# 2차원 리스트 +graph = [[INF] * (n + 1) for _ in range(n + 1)] + +# 자기 자신 0으로 초기화 +for a in range(1, n + 1): + for b in range(1, n + 1): + if a == b: + graph[a][b] == 0 + +# 각 간선에 대한 정보 입력받기 +for _ in range(m): + # a에서 b까지 c + a, b, c = map(int, input().split()) + graph[a][b] = c + +# 플로이드 워셜 알고리즘 +for k in range(1, n + 1): + for a in range(1, n + 1): + for b in range(1, n + 1): + graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) + +# 출력 +for a in range(1, n + 1): + for b in range(1, n + 1): + if graph[a][b] == INF: + print("INFINITY", end=" ") + else: + print(graph[a][b], end=" ") + print() \ No newline at end of file From 841fc12cc52b10b44987e994fe731a0ce06fd1aa Mon Sep 17 00:00:00 2001 From: Youjiiin Date: Tue, 23 Jan 2024 01:15:29 +0900 Subject: [PATCH 9/9] =?UTF-8?q?=EC=A0=84=EB=B3=B4=5F=EC=9C=A0=EC=A7=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...65\354\212\244\355\212\270\353\235\274.py" | 2 + .../\354\234\240\354\247\204.py" | 28 ++++++++ .../\354\234\240\354\247\204.py" | 69 ++++++++++++------- 3 files changed, 75 insertions(+), 24 deletions(-) diff --git "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274.py" "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274.py" index 31b07f4..7fac2d6 100644 --- "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274.py" +++ "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274.py" @@ -23,10 +23,12 @@ def dijkstra(start): # 시작 노드로 가는 비용 0 heapq.heappush(q, (0, start)) + # 근데 큐에 넣는 것 만으로도 distance에 저장이 되나? distance[start] = 0 while q: # q가 비어있지 않다면, # 최단 거리가 짧은 노드 꺼내기 + # 거리, 지금 노드 dist, now = heapq.heappop(q) # 이미 처리된 적 있는가? diff --git "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\234\240\354\247\204.py" index e69de29..cf5741a 100644 --- "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\234\240\354\247\204.py" +++ "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\353\257\270\353\236\230_\353\217\204\354\213\234/\354\234\240\354\247\204.py" @@ -0,0 +1,28 @@ +INF = int(1e9) +n, m = map(int, input().split()) + +graph = [[INF] * (n + 1) for _ in range(n + 1)] + +# 자기 자신 0 +for a in range(1, n + 1): + for b in range(1, n + 1): + if a == b: + graph[a][b] = 0 + +for i in range(m): + a, b = map(int, input().split()) + graph[a][b] = 1 + graph[b][a] = 1 # 안썼었음 + +x, k = map(int, input().split()) + +for i in range(1, m + 1): + for a in range(1, m + 1): + for b in range(1, m + 1): + graph[a][b] = min(graph[a][b], graph[a][i] + graph[i][b]) + +distance = graph[1][k] + graph[k][x] +if distance == INF: + print(-1) +else: + print(distance) \ No newline at end of file diff --git "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\354\240\204\353\263\264/\354\234\240\354\247\204.py" "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\354\240\204\353\263\264/\354\234\240\354\247\204.py" index cf5741a..448a899 100644 --- "a/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\354\240\204\353\263\264/\354\234\240\354\247\204.py" +++ "b/\354\235\264\354\275\224\355\205\214/09 \354\265\234\353\213\250 \352\262\275\353\241\234/\354\240\204\353\263\264/\354\234\240\354\247\204.py" @@ -1,28 +1,49 @@ +import heapq, sys +input = sys.stdin.readline INF = int(1e9) -n, m = map(int, input().split()) -graph = [[INF] * (n + 1) for _ in range(n + 1)] - -# 자기 자신 0 -for a in range(1, n + 1): - for b in range(1, n + 1): - if a == b: - graph[a][b] = 0 +n, m, c = map(int, input().split()) +graph = [[] for i in range(n + 1)] +distance = [INF] * (n + 1) +# 간선들의 정보 입력받기 for i in range(m): - a, b = map(int, input().split()) - graph[a][b] = 1 - graph[b][a] = 1 # 안썼었음 - -x, k = map(int, input().split()) - -for i in range(1, m + 1): - for a in range(1, m + 1): - for b in range(1, m + 1): - graph[a][b] = min(graph[a][b], graph[a][i] + graph[i][b]) - -distance = graph[1][k] + graph[k][x] -if distance == INF: - print(-1) -else: - print(distance) \ No newline at end of file + x, y, z = map(int, input().split()) + graph[x].append((y, z)) + +# 다익스트라 +def dijkstra(start): + q = [] # 우선순위 큐 + + heapq.heappush(q, (0, start)) + # 시작지점 거리 0 + distance[start] = 0 + + while q: + dist, now = heapq.heappop(q) + + # 이미 처리했다면, + if distance[now] < dist: + continue + + # 지금 위치에서 비용계산을 하면 + for i in graph[now]: + cost = dist + i[1] + + # 다른 노드를 거치는게 더 적게 걸린다면, + if cost < distance[i[0]]: + heapq.heappush(q, (cost, i[0])) +dijkstra(c) # 다익스트라 함수 실행 + +# C와 연결된 도시 갯수 세기 +count = 0 + +# 전보가 가는 시간 측정 +# -> 총 걸리는 시간 = 가장 오래 걸리는 시간을 측정해야하는데 최댓값을 뽑아야 하나? +time = 0 +for i in distance: + if i != INF: + count += 1 + time = max(time, i) + +print(count - 1, time) # 시작노드 제외해야 해서 -1 해줘야 하는데 안함 \ No newline at end of file