2637. 장난감 조립.

·2025년 8월 4일
0

백준 알고리즘

목록 보기
206/270

문제 해결 전략

: 작은 부품부터 해결해나가야 할까? 큰 부품부터 해결해야 할까? 에 대한 생각을 함..

입력값 cin >> x(큰) >> y(작은) >> k(비용); 이고,

[y].push_back({x, k}) ; 으로 하기에는
누적되는 costs 비용을 처리할 수 없는 구조여서

[x].push_back({y, k}); 로 변경함.

  • 왜 혼동했냐? 하면 기존의 위상정렬 풀 때는 작은 거부터 해결해 나가는 구조라고 생각했는데, 이것은 아니다.
    지금의 경우, 큰 부품부터 queue 에 넣고,
    진행하고 있어서 혼동했따....

  • 이게 성립하는 이유는 문제에서 완제품 7번을 구하라고 했고,
    7번에서부터 연결된 그래프로 쫘아악 퍼져 나가면서
    costs[idx] 를 갱신해야 하기 때문에
    => 완제품 부터 진행해야 한다.

왜 잘못생각했을까?

  • 문제에서 작은 부품 , 중간 부품, 큰 부품이 있어서
    아무래도 작은 부품부터 해결해야 하지 않을까? 란 생각을 했다.

  • 다른 위상정렬 문제를 보더라도, a -> b 순서인 경운,
    inDegree[b] 를 카운팅한다.

  • 지금의 경우는 큰 부품 -> 작은 부품으로 이루어지는 형태이다.
profile
🔥🔥🔥

0개의 댓글