From d2be143dfcdf17ebc3fb55b9cffeddd0c89d5ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=8F=84=ED=98=84=20KimDohyun?= <202230418@pukyong.ac.kr> Date: Tue, 28 May 2024 12:41:39 +0900 Subject: [PATCH 1/9] =?UTF-8?q?2024-05-27=20=EC=98=A4=EB=8A=98=EB=8F=84=20?= =?UTF-8?q?=EC=A1=8C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pu2rile/README.md | 8 ++++++ ...30\353\217\204 \354\241\214\353\213\244.c" | 27 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 "pu2rile/\352\265\254\355\230\204/\354\230\244\353\212\230\353\217\204 \354\241\214\353\213\244.c" diff --git a/pu2rile/README.md b/pu2rile/README.md index f04c429..9c99018 100644 --- a/pu2rile/README.md +++ b/pu2rile/README.md @@ -6,3 +6,11 @@ | 2차시 | 2024.03.29 | 구현 | [OX퀴즈](https://www.acmicpc.net/problem/8958) | [#6](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/6#issue-2214931034)| | 3차시 | 2024.04.02 | 문자열 | [크로아티아 알파벳](https://www.acmicpc.net/problem/8958) | [#10](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/10#issue-2220631332) | 4차시 | 2024.04.08 | 스택 | [제로](https://www.acmicpc.net/problem/10773) | [#15](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/15#issue-2229909173) +<<<<<<< Updated upstream +======= +| 5차시 | 2024.04.10 | 그리디 알고리즘 | [국회의원 선거](https://www.acmicpc.net/problem/1417) | [#18](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/18#issue-2235862658) +| 6차시 | 2024.05.10 | 그리디 알고리즘 | [ATM](https://www.acmicpc.net/problem/11399) | [#25](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/25#issue-2289086909) +| 7차시 | 2024.05.10 | 완전 탐색 알고리즘 | [영화감독 숌](https://www.acmicpc.net/problem/1436) | [#26](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/25#issue-2289086909) +| 8차시 | 2024.05.14 | 그리디 알고리즘 | [팔](https://www.acmicpc.net/problem/1105) | [#28](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/28#issue-2295901384) +| 9차시 | 2024.05.27 | 구현 | [오늘도 졌다](https://www.acmicpc.net/problem/14582) | [#29]() +>>>>>>> Stashed changes diff --git "a/pu2rile/\352\265\254\355\230\204/\354\230\244\353\212\230\353\217\204 \354\241\214\353\213\244.c" "b/pu2rile/\352\265\254\355\230\204/\354\230\244\353\212\230\353\217\204 \354\241\214\353\213\244.c" new file mode 100644 index 0000000..0c63f7d --- /dev/null +++ "b/pu2rile/\352\265\254\355\230\204/\354\230\244\353\212\230\353\217\204 \354\241\214\353\213\244.c" @@ -0,0 +1,27 @@ +#include + +int main() { + int j[9]; + int g[9]; + int win = 0; + int j_score = 0; + int g_score = 0; + + for (int i=0 ; i<9; i++) { //제미니스 점수 입력 + scanf("%d", &j[i]); + } + for (int i=0 ; i<9; i++) { //걸리버스 점수 입력 + scanf("%d", &g[i]); + } + + for (int i=0 ; i<9; i++) { + j_score += j[i]; //제미니스 점수 누적합(j_score == 총 점수) + if (j_score > g_score) //점수 비교 + win = 1; //제미니스가 이겼다면 win = 1 + g_score += g[i]; //걸리버스 점수 누적합(g_score == 총 점수) + } + if (j_score < g_score && win == 1) //제미니스가 졌지만 제미니스가 이긴 적이 있다면(역전패) + printf("Yes\n"); + else + printf("No\n"); +} From 147d4626cc2c3b1d3b7aaab1314fa9160a90e38e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=8F=84=ED=98=84=20KimDohyun?= <163822282+pu2rile@users.noreply.github.com> Date: Tue, 28 May 2024 12:43:44 +0900 Subject: [PATCH 2/9] Update README.md --- pu2rile/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pu2rile/README.md b/pu2rile/README.md index 9c99018..f6274aa 100644 --- a/pu2rile/README.md +++ b/pu2rile/README.md @@ -12,5 +12,5 @@ | 6차시 | 2024.05.10 | 그리디 알고리즘 | [ATM](https://www.acmicpc.net/problem/11399) | [#25](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/25#issue-2289086909) | 7차시 | 2024.05.10 | 완전 탐색 알고리즘 | [영화감독 숌](https://www.acmicpc.net/problem/1436) | [#26](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/25#issue-2289086909) | 8차시 | 2024.05.14 | 그리디 알고리즘 | [팔](https://www.acmicpc.net/problem/1105) | [#28](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/28#issue-2295901384) -| 9차시 | 2024.05.27 | 구현 | [오늘도 졌다](https://www.acmicpc.net/problem/14582) | [#29]() +| 9차시 | 2024.05.27 | 구현 | [오늘도 졌다](https://www.acmicpc.net/problem/14582) | [#29](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/29#issue-2320060288) >>>>>>> Stashed changes From bb52b7ab39671f7047e8ba19d504f15bd91505c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Mon, 1 Jul 2024 11:36:02 +0900 Subject: [PATCH 3/9] =?UTF-8?q?Revert=20"2024-05-09=20=EC=9B=90=EC=88=AD?= =?UTF-8?q?=EC=9D=B4=20=EB=A7=A4=EB=8B=AC=EA=B8=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit c2985870e0d0005b210594a2245b0ee0590ef73d. --- .../\355\212\270\353\246\254/7-suhyun113.py" | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 "suhyun113/\355\212\270\353\246\254/7-suhyun113.py" diff --git "a/suhyun113/\355\212\270\353\246\254/7-suhyun113.py" "b/suhyun113/\355\212\270\353\246\254/7-suhyun113.py" deleted file mode 100644 index f12a44f..0000000 --- "a/suhyun113/\355\212\270\353\246\254/7-suhyun113.py" +++ /dev/null @@ -1,27 +0,0 @@ -# 2716 : 원숭이 매달기 - -N = int(input()) # 테스트 케이스의 개수 -results = [] - -for _ in range(N): - s = input().strip() - len_s = len(s) - - depth = 0 - max_depth = 0 - - for i in range(len_s): - if (s[i] == '['): - depth += 1 - if (depth > max_depth): - max_depth = depth - elif (s[i] == ']'): - depth -= 1 - - result = 1 #나무 꼭대기 도달위해 최소 한 마리 원숭이 필요 - for _ in range(max_depth): - result *= 2 - results.append(result) - -for result in results: - print(result) \ No newline at end of file From 0ea79f5317a92f545beee4bdc530545c5dee3354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Mon, 1 Jul 2024 11:36:54 +0900 Subject: [PATCH 4/9] =?UTF-8?q?2024-05-09=20=EC=9B=90=EC=88=AD=EC=9D=B4=20?= =?UTF-8?q?=EB=A7=A4=EB=8B=AC=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\355\212\270\353\246\254/7-suhyun113.py" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "suhyun113/\355\212\270\353\246\254/7-suhyun113.py" diff --git "a/suhyun113/\355\212\270\353\246\254/7-suhyun113.py" "b/suhyun113/\355\212\270\353\246\254/7-suhyun113.py" new file mode 100644 index 0000000..f12a44f --- /dev/null +++ "b/suhyun113/\355\212\270\353\246\254/7-suhyun113.py" @@ -0,0 +1,27 @@ +# 2716 : 원숭이 매달기 + +N = int(input()) # 테스트 케이스의 개수 +results = [] + +for _ in range(N): + s = input().strip() + len_s = len(s) + + depth = 0 + max_depth = 0 + + for i in range(len_s): + if (s[i] == '['): + depth += 1 + if (depth > max_depth): + max_depth = depth + elif (s[i] == ']'): + depth -= 1 + + result = 1 #나무 꼭대기 도달위해 최소 한 마리 원숭이 필요 + for _ in range(max_depth): + result *= 2 + results.append(result) + +for result in results: + print(result) \ No newline at end of file From a76468aaf3cb461531ea7577c837fc83a0645f08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Mon, 1 Jul 2024 11:57:13 +0900 Subject: [PATCH 5/9] Update README.md --- suhyun113/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/suhyun113/README.md b/suhyun113/README.md index c74169e..dbbe637 100644 --- a/suhyun113/README.md +++ b/suhyun113/README.md @@ -7,4 +7,5 @@ | 3차시 | 2024.04.02 | 그리디 | [거스름돈](https://www.acmicpc.net/problem/14916) | [#12](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/12) | | 4차시 | 2024.04.06 | DP | [피보나치 수 5](https://www.acmicpc.net/problem/10870) | [#16](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/16) | | 5차시 | 2024.04.10 | 스택 | [크레인 인형 뽑기 게임](https://school.programmers.co.kr/learn/courses/30/lessons/64061) | [#19](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/19) | -| 6차시 | 2024.04.14 | 스택 | [컨트롤 제트](https://school.programmers.co.kr/learn/courses/30/lessons/120853) | [#21](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/21) | \ No newline at end of file +| 6차시 | 2024.04.14 | 스택 | [컨트롤 제트](https://school.programmers.co.kr/learn/courses/30/lessons/120853) | [#21](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/21) | +| 7차시 | 2024.05.09 | 트리 | [원숭이 매달기](https://www.acmicpc.net/problem/2716) | [#31](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/31) | \ No newline at end of file From c3f22292a96cfb2be3124ee5a1cbd1a7b493d079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Mon, 1 Jul 2024 14:16:46 +0900 Subject: [PATCH 6/9] =?UTF-8?q?2024-05-14=20=EC=96=B4=EB=A6=B0=20=EC=99=95?= =?UTF-8?q?=EC=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- suhyun113/README.md | 3 +- .../\354\210\230\355\225\231/8-suhyun113.cpp" | 42 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 "suhyun113/\354\210\230\355\225\231/8-suhyun113.cpp" diff --git a/suhyun113/README.md b/suhyun113/README.md index dbbe637..ac4efaf 100644 --- a/suhyun113/README.md +++ b/suhyun113/README.md @@ -8,4 +8,5 @@ | 4차시 | 2024.04.06 | DP | [피보나치 수 5](https://www.acmicpc.net/problem/10870) | [#16](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/16) | | 5차시 | 2024.04.10 | 스택 | [크레인 인형 뽑기 게임](https://school.programmers.co.kr/learn/courses/30/lessons/64061) | [#19](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/19) | | 6차시 | 2024.04.14 | 스택 | [컨트롤 제트](https://school.programmers.co.kr/learn/courses/30/lessons/120853) | [#21](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/21) | -| 7차시 | 2024.05.09 | 트리 | [원숭이 매달기](https://www.acmicpc.net/problem/2716) | [#31](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/31) | \ No newline at end of file +| 7차시 | 2024.05.09 | 트리 | [원숭이 매달기](https://www.acmicpc.net/problem/2716) | [#31](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/31) | +| 8차시 | 2024.05.14 | 수학 | [어린 왕자](https://www.acmicpc.net/problem/1004) | [#32](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/32) | \ No newline at end of file diff --git "a/suhyun113/\354\210\230\355\225\231/8-suhyun113.cpp" "b/suhyun113/\354\210\230\355\225\231/8-suhyun113.cpp" new file mode 100644 index 0000000..d536df4 --- /dev/null +++ "b/suhyun113/\354\210\230\355\225\231/8-suhyun113.cpp" @@ -0,0 +1,42 @@ +// 1004 : 어린 왕자 + +#include +#include +using namespace std; + +int main() { + int T; // 테스트 케이스의 개수 + int x1, y1, x2, y2; // 출발점, 도착점 + int n; // 행성의 개수 + int cx, cy, r; // 행성계의 중점과 반지름 + + cin >> T; + while(T--) { + cin >> x1 >> y1 >> x2 >> y2; + cin >> n; + + int enter = 0; // 진입 횟수 + int departure = 0; // 이탈 횟수 + int count = 0; // 최종 진입/이탈 횟수 + + while(n--) { + cin >> cx >> cy >> r; + float startDistance = sqrt(pow(cx - x1, 2) + pow(cy - y1, 2)); // 출발점과 원 사이의 거리 + float endDistance = sqrt(pow(cx - x2, 2) + pow(cy - y2, 2)); // 도착점과 원 사이의 거리 + + if (startDistance < r){ // 출발점이 원 내부에 있고, + if (endDistance > r) { // 도착점이 원 외부에 있음 + departure++; // 출발점 포함하는 행성 -> 이탈 횟수 증가 + } + } + if (startDistance > r) { // 출발점이 원 외부에 있고, + if (endDistance < r) { // 도착점이 원 내부에 있음 + enter++; // 도착점 포함하는 행성 -> 진입 회수 증가 + } + } + } + count = enter + departure; // 최종 진입/이탈 횟수 + cout << count << endl; + } + return 0; +} \ No newline at end of file From 5c53701ac91129592de2358694d743103b7fb80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Mon, 1 Jul 2024 18:48:36 +0900 Subject: [PATCH 7/9] =?UTF-8?q?2024-05-28=20=EC=B5=9C=EC=86=8C=EB=B9=84?= =?UTF-8?q?=EC=9A=A9=20=EA=B5=AC=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- suhyun113/README.md | 3 +- .../9-suhyun113.py" | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 "suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" diff --git a/suhyun113/README.md b/suhyun113/README.md index ac4efaf..b038c16 100644 --- a/suhyun113/README.md +++ b/suhyun113/README.md @@ -9,4 +9,5 @@ | 5차시 | 2024.04.10 | 스택 | [크레인 인형 뽑기 게임](https://school.programmers.co.kr/learn/courses/30/lessons/64061) | [#19](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/19) | | 6차시 | 2024.04.14 | 스택 | [컨트롤 제트](https://school.programmers.co.kr/learn/courses/30/lessons/120853) | [#21](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/21) | | 7차시 | 2024.05.09 | 트리 | [원숭이 매달기](https://www.acmicpc.net/problem/2716) | [#31](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/31) | -| 8차시 | 2024.05.14 | 수학 | [어린 왕자](https://www.acmicpc.net/problem/1004) | [#32](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/32) | \ No newline at end of file +| 8차시 | 2024.05.14 | 수학 | [어린 왕자](https://www.acmicpc.net/problem/1004) | [#32](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/32) | +| 8차시 | 2024.05.28 | 다익스트라 | [최소비용 구하기](https://www.acmicpc.net/problem/1916) | [#33](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/33) | \ No newline at end of file diff --git "a/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" "b/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" new file mode 100644 index 0000000..1778f1f --- /dev/null +++ "b/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" @@ -0,0 +1,36 @@ +# 1916 : 최소비용 구하기 + +import heapq + +INF = float('inf') # 최대값 정의 + +N = int(input()) # 도시의 개수(노드) +M = int(input()) # 버스의 개수(에지) + +graph = [[] for _ in range(N+1)] # 그래프 인접 리스트로 초기화(방문하지 않은 노드들) +distance = [INF] * (N+1) # 각 노드까지의 거리 무한대로 초기화 + +for _ in range(M): + x, y, cost = map(int, input().split()) # x -> y 도시로 가는 데 필요한 비용 cost + graph[x].append([y, cost]) # 그래프에 에지 추가 + +start, end = map(int, input().split()) # 출발, 도착 노드 입력 받기 + +# 다익스트라 알고리즘 +def Dijkstra(start): + q = [] # 우선순위 큐 생성 + heapq.heappush(q, [0, start]) # 출발할 도시 큐에 넣기([거리, 노드] 형태) + distance[start] = 0 # 시작 도시의 거리 0으로 초기화 + + while q: # 큐가 빌 때까지 반복 + weight, node = heapq.heappop(q) # 현재 노드까지의 거리, 현재 노드(큐에서 가장 작은 값) + if distance[node] < weight: # 현재 노드가 이미 처리된 노드인지 확인 + continue + for n, w in graph[node]: + cost = w + weight # 현재 노드를 통해 인접 노드까지 가는 새로운 거리 계산 + if distance[n] > cost: # 새로운 거리가 기존에 저장된 거리보다 짧은지 확인 + distance[n] = cost # 최단 거리 갱신 + heapq.heappush(q, [cost, n]) # 인접 노드를 우선순위 큐에 추가 + +Dijkstra(start) +print(distance[end]) \ No newline at end of file From 8921313a0ad35d7a00dea60acd0c7d3d5b1c89ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Mon, 1 Jul 2024 18:49:38 +0900 Subject: [PATCH 8/9] =?UTF-8?q?Revert=20"2024-05-28=20=EC=B5=9C=EC=86=8C?= =?UTF-8?q?=EB=B9=84=EC=9A=A9=20=EA=B5=AC=ED=95=98=EA=B8=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 5c53701ac91129592de2358694d743103b7fb80b. --- suhyun113/README.md | 3 +- .../9-suhyun113.py" | 36 ------------------- 2 files changed, 1 insertion(+), 38 deletions(-) delete mode 100644 "suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" diff --git a/suhyun113/README.md b/suhyun113/README.md index b038c16..ac4efaf 100644 --- a/suhyun113/README.md +++ b/suhyun113/README.md @@ -9,5 +9,4 @@ | 5차시 | 2024.04.10 | 스택 | [크레인 인형 뽑기 게임](https://school.programmers.co.kr/learn/courses/30/lessons/64061) | [#19](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/19) | | 6차시 | 2024.04.14 | 스택 | [컨트롤 제트](https://school.programmers.co.kr/learn/courses/30/lessons/120853) | [#21](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/21) | | 7차시 | 2024.05.09 | 트리 | [원숭이 매달기](https://www.acmicpc.net/problem/2716) | [#31](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/31) | -| 8차시 | 2024.05.14 | 수학 | [어린 왕자](https://www.acmicpc.net/problem/1004) | [#32](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/32) | -| 8차시 | 2024.05.28 | 다익스트라 | [최소비용 구하기](https://www.acmicpc.net/problem/1916) | [#33](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/33) | \ No newline at end of file +| 8차시 | 2024.05.14 | 수학 | [어린 왕자](https://www.acmicpc.net/problem/1004) | [#32](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/32) | \ No newline at end of file diff --git "a/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" "b/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" deleted file mode 100644 index 1778f1f..0000000 --- "a/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" +++ /dev/null @@ -1,36 +0,0 @@ -# 1916 : 최소비용 구하기 - -import heapq - -INF = float('inf') # 최대값 정의 - -N = int(input()) # 도시의 개수(노드) -M = int(input()) # 버스의 개수(에지) - -graph = [[] for _ in range(N+1)] # 그래프 인접 리스트로 초기화(방문하지 않은 노드들) -distance = [INF] * (N+1) # 각 노드까지의 거리 무한대로 초기화 - -for _ in range(M): - x, y, cost = map(int, input().split()) # x -> y 도시로 가는 데 필요한 비용 cost - graph[x].append([y, cost]) # 그래프에 에지 추가 - -start, end = map(int, input().split()) # 출발, 도착 노드 입력 받기 - -# 다익스트라 알고리즘 -def Dijkstra(start): - q = [] # 우선순위 큐 생성 - heapq.heappush(q, [0, start]) # 출발할 도시 큐에 넣기([거리, 노드] 형태) - distance[start] = 0 # 시작 도시의 거리 0으로 초기화 - - while q: # 큐가 빌 때까지 반복 - weight, node = heapq.heappop(q) # 현재 노드까지의 거리, 현재 노드(큐에서 가장 작은 값) - if distance[node] < weight: # 현재 노드가 이미 처리된 노드인지 확인 - continue - for n, w in graph[node]: - cost = w + weight # 현재 노드를 통해 인접 노드까지 가는 새로운 거리 계산 - if distance[n] > cost: # 새로운 거리가 기존에 저장된 거리보다 짧은지 확인 - distance[n] = cost # 최단 거리 갱신 - heapq.heappush(q, [cost, n]) # 인접 노드를 우선순위 큐에 추가 - -Dijkstra(start) -print(distance[end]) \ No newline at end of file From 7136243572b506d6899eccc47178246ae93bf9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Mon, 1 Jul 2024 18:51:01 +0900 Subject: [PATCH 9/9] =?UTF-8?q?2024-05-28=20=EC=B5=9C=EC=86=8C=EB=B9=84?= =?UTF-8?q?=EC=9A=A9=20=EA=B5=AC=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- suhyun113/README.md | 3 +- .../9-suhyun113.py" | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 "suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" diff --git a/suhyun113/README.md b/suhyun113/README.md index ac4efaf..163899f 100644 --- a/suhyun113/README.md +++ b/suhyun113/README.md @@ -9,4 +9,5 @@ | 5차시 | 2024.04.10 | 스택 | [크레인 인형 뽑기 게임](https://school.programmers.co.kr/learn/courses/30/lessons/64061) | [#19](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/19) | | 6차시 | 2024.04.14 | 스택 | [컨트롤 제트](https://school.programmers.co.kr/learn/courses/30/lessons/120853) | [#21](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/21) | | 7차시 | 2024.05.09 | 트리 | [원숭이 매달기](https://www.acmicpc.net/problem/2716) | [#31](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/31) | -| 8차시 | 2024.05.14 | 수학 | [어린 왕자](https://www.acmicpc.net/problem/1004) | [#32](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/32) | \ No newline at end of file +| 8차시 | 2024.05.14 | 수학 | [어린 왕자](https://www.acmicpc.net/problem/1004) | [#32](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/32) | +| 9차시 | 2024.05.28 | 다익스트라 | [최소비용 구하기](https://www.acmicpc.net/problem/1916) | [#33](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/33) | \ No newline at end of file diff --git "a/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" "b/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" new file mode 100644 index 0000000..1778f1f --- /dev/null +++ "b/suhyun113/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/9-suhyun113.py" @@ -0,0 +1,36 @@ +# 1916 : 최소비용 구하기 + +import heapq + +INF = float('inf') # 최대값 정의 + +N = int(input()) # 도시의 개수(노드) +M = int(input()) # 버스의 개수(에지) + +graph = [[] for _ in range(N+1)] # 그래프 인접 리스트로 초기화(방문하지 않은 노드들) +distance = [INF] * (N+1) # 각 노드까지의 거리 무한대로 초기화 + +for _ in range(M): + x, y, cost = map(int, input().split()) # x -> y 도시로 가는 데 필요한 비용 cost + graph[x].append([y, cost]) # 그래프에 에지 추가 + +start, end = map(int, input().split()) # 출발, 도착 노드 입력 받기 + +# 다익스트라 알고리즘 +def Dijkstra(start): + q = [] # 우선순위 큐 생성 + heapq.heappush(q, [0, start]) # 출발할 도시 큐에 넣기([거리, 노드] 형태) + distance[start] = 0 # 시작 도시의 거리 0으로 초기화 + + while q: # 큐가 빌 때까지 반복 + weight, node = heapq.heappop(q) # 현재 노드까지의 거리, 현재 노드(큐에서 가장 작은 값) + if distance[node] < weight: # 현재 노드가 이미 처리된 노드인지 확인 + continue + for n, w in graph[node]: + cost = w + weight # 현재 노드를 통해 인접 노드까지 가는 새로운 거리 계산 + if distance[n] > cost: # 새로운 거리가 기존에 저장된 거리보다 짧은지 확인 + distance[n] = cost # 최단 거리 갱신 + heapq.heappush(q, [cost, n]) # 인접 노드를 우선순위 큐에 추가 + +Dijkstra(start) +print(distance[end]) \ No newline at end of file