Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 항해99
- js
- Java
- 가상컴퓨팅
- 알고리즘
- DB
- python
- 크루스칼
- 암호학
- 자바의정석
- 개발자취업
- 99클럽
- Algorithm
- til
- 생성자
- jsp
- dfs
- JPA
- BFS
- javascript
- 자료구조
- 공개키 암호화
- 코딩테스트준비
- spring
- Queue
- generic class
- 코테
- sql
- dbms
- 코딩테스트
Archives
- Today
- Total
PLOD
99클럽 코테 스터디 1일차 TIL + 백준 11657(벨만-포드) 본문
오늘의 학습 키워드
오늘은 벨만 포드에 대해 배워보았다. 벨만 포드 관련해서 백준 11657 문제를 풀어보았다.
백준 링크 : https://www.acmicpc.net/problem/11657
- 공부한 내용 본인의 언어로 정리하기
# https://www.acmicpc.net/problem/11657
import sys
input = sys.stdin.readline
def bellman_ford(graph,start) :
distance = [1e9] * (n)
distance[start] = 0 # 초기 노드 0
for i in range(n-1) :
for start,end,weight in graph :
if distance[start] != 1e9 and distance[start] + weight < distance[end] :
distance[end] = distance[start] + weight
for i in range(n-1) :
for start, end, weight in graph :
if distance[start] != 1e9 and distance[start] + weight < distance[end] :
return -1
return distance
n,m = map(int,input().split())
graph = []
for _ in range(m) :
a,b,c = map(int,input().split())
graph.append((a-1,b-1,c))
dist = bellman_ford(graph,0)
if dist == -1 :
print(-1)
else :
for i in dist[1:] :
if i == 1e9 :
print(-1)
else :
print(i)
- 오늘의 회고
1. 어떤 문제가 있었고, 나는 어떤 시도를 했는지
우선 이 문제를 항해 취업 리부트 코스를 했을떄 풀어보았던 문제인데.. 다시 풀려고 하니 알고리즘이 떠오르지 않아 못풀었습니다. 그래서 많이 부끄러웠습니다.
2. 어떻게 해결했는지
벨만포드 알고리즘 학습후 적용해서 다시 풀어보았습니다.
3. 무엇을 새롭게 알았는지
우선 제가 기억해낸 사실과 알고리즘 공부를 해야 될 떄 명심해야 될 부분을 다시 상기할 수 있었습니다.
- 벨만 포드 알고리즘 : 가중치가 음수일 때 사용합니다
- 알고리즘 공부 : 감을 잃지 말자, 잃어버렸던 내용 다시 상기할 수 있도록 하자
'대외 활동 및 IT 지식 > 알고리즘 문제 풀이 정리' 카테고리의 다른 글
99클럽 코테 스터디 5기 4일차 TIL + 투포인터 (0) | 2025.01.25 |
---|---|
99클럽 코테 스터디 5기 3일차 TIL + 다익스트라 (0) | 2025.01.25 |
99클럽 코테 스터디 5기 2일차 TIL + 프로그래머스 가사 검색(Trie) (0) | 2025.01.15 |
Comments