Skip to content

[20260225] BOJ / P4 / 도시 왕복하기 1 / 이강현#1966

Merged
ShinHeeEul merged 1 commit intomainfrom
lkhyun
Feb 25, 2026
Merged

[20260225] BOJ / P4 / 도시 왕복하기 1 / 이강현#1966
ShinHeeEul merged 1 commit intomainfrom
lkhyun

Conversation

@lkhyun
Copy link
Contributor

@lkhyun lkhyun commented Feb 25, 2026

🧷 문제 링크

https://www.acmicpc.net/problem/17412

🧭 풀이 시간

120분

👀 체감 난이도

✏️ 문제 설명

1부터 2까지 가는 경로의 최대 개수를 구한다.
특정 경로내의 길들은 다른 경로의 포함될 수 없다.(즉, 1번만 사용가능하다.)

🔍 풀이 방법

최대 유량
가상의 역방향 간선을 생각하는 에드워드 카프 알고리즘을 통해 구현
BFS를 구현하는 것과 유사하게 구현하되 추가 작업이 필요했다.
먼저 prev라는 배열에 특정 노드에 올때 거쳐온 간선을 저장했다.
이를 i라고 한다면 i ^ 1은 역방향 간선이 되는 것이다.
BFS를 진행하면서 목적지 노드에 도달할 수 있다면 간선의 weight를 수정한다.
거꾸로 거슬러 올라가면서 정방향은 -1, 역방향은 +1을 해준다.
이를 목적지 노드에 도착할 수 없을때까지 반복하면 된다.

⏳ 회고

최대 유량이라는 알고리즘에 흥미가 생겨서 좀 알아봤는데 재미있었다.
특히 idx와 idx ^ 1은 0과 1, 2와 3, 4와 5 ... 를 서로 참조하고 있을 수 있다는 아이디어에서 초기 인접 리스트에 간선을 넣는 방식과 일치시키면 정방향과 역방향 간선을 서로 참조할 수 있어서 간편했다.

@lkhyun lkhyun self-assigned this Feb 25, 2026
@lkhyun lkhyun added the timeout ⌚ 목표 시간보다 오래걸렸을 때 label Feb 25, 2026
@ShinHeeEul ShinHeeEul merged commit 599441d into main Feb 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

timeout ⌚ 목표 시간보다 오래걸렸을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants