백준 1939. 중량제한

2023. 11. 3. 14:02·백준

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

 

1939번: 중량제한

첫째 줄에 N, M(1 ≤ M ≤ 100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1 ≤ A, B ≤ N), C(1 ≤ C ≤ 1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이

www.acmicpc.net

import sys

input = sys.stdin.readline

def check(weight): # 목적지 도착 여부를 체크하는 함수
    visited = [False] * (n + 1)
    visited[start] = True
    stack = [start]

    while stack:

        current = stack.pop()

        if current == end: # 목적지 도착!
            return True

        for node, bridge_w in arr[current]:
            if bridge_w >= weight and not visited[node]: # 들고온 짐 그대로 건너갈 수 있나?
                visited[node] = True
                stack.append(node)

    return False

n, m = map(int, input().split())
arr = [[] for _ in range(n + 1)]
for _ in range(m):
    a, b, c = map(int, input().split())
    arr[a].append((b, c)) # 양방향이므로 둘 다 넣어줌!
    arr[b].append((a, c))

start, end = map(int, input().split())

# 이진탐색 이용
left = 1
right = 1000000000

while left <= right:
    mid = (left + right) // 2

    if check(mid): # 시작지점에서 mid의 중량이 끝까지 도착할 수 있으면?
        left = mid + 1
    else:
        right = mid - 1

print(right)

- 이진탐색을 이용하면 최댓값 찾기가 그렇게 복잡해지지 않는구나! -> 최댓값 찾기 애먹었는데... 나중에 이용해보자

- 처음엔 양방향 고려를 안했었다...

- 특별한 의미가 없으면 1과 -1 대신 True 와 False를 사용하는 것이 좋다

- 문제를 잘못이해했었더니 헤맸다... -> 가장 기본이므로 문제를 잘!!읽자!!

저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 2531. 회전 초밥  (0) 2023.11.13
백준 1135. 뉴스 전하기  (0) 2023.11.07
백준 1520. 내리막 길  (0) 2023.11.01
백준 4485. 녹색 옷 입은 애가 젤다지?  (0) 2023.10.30
백준 18430. 무기 공학  (0) 2023.10.27
'백준' 카테고리의 다른 글
  • 백준 2531. 회전 초밥
  • 백준 1135. 뉴스 전하기
  • 백준 1520. 내리막 길
  • 백준 4485. 녹색 옷 입은 애가 젤다지?
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (382)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    99클럽
    항해99
    개발자취업
    Til
    코딩테스트준비
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 1939. 중량제한
상단으로

티스토리툴바