백준 2056. 작업

2024. 11. 13. 13:01·백준

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

from collections import deque
import sys
input = sys.stdin.readline

n = int(input())
indegree = [0] * (n+1) # 선행 작업 개수 기록
graph = [[] for _ in range(n+1)] # 후행 작업들의 리스트
dp = [0] * (n+1) # 각 작업이 완료되기까지 필요한 최소 시간
t = [0] # 각 작업의 소요 시간 저장

for i in range(1, n+1):
    array = list(map(int, input().split()))
    t.append(array[0])
    if array[1] != 0: # 선행 작업이 있는 경우
        for j in range(2, len(array)):
            graph[array[j]].append(i)
            indegree[i] += 1

q = deque()
# 선행 작업이 없는 작업을 큐에 삽입
for i in range(1, n+1):
    if indegree[i] == 0:
        q.append(i)
        dp[i] = t[i] # 선행 작업 없으므로 본인 수행 시간만

while q:
    now = q.popleft()
    for i in graph[now]:
        indegree[i] -= 1
        dp[i] = max(dp[now] + t[i], dp[i]) # 기존의 값과 현재의 작업을 거칠 경우 비교 ->최댓값 갱신
        if indegree[i] == 0: # 선행 작업을 모두 완료했을 경우
            q.append(i) # 마지막 선행 작업 번호를 넣어 다음 작업 수행(모든 선행작업이 완료되었으므로 준비됐음)
print(max(dp))

선행 작업 개수 리스트, 후행 작업들 리스트, 각 작업의 소요시간 리스트

이렇게 세 개의 리스트를 만들어야된다는 점을 생각해내기가 정말 어렵다.....

저작자표시 (새창열림)

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

백준 1083. 소트  (0) 2024.11.16
백준 2179. 비슷한 단어  (0) 2024.11.13
백준 14916. 거스름돈  (0) 2024.11.11
백준 30689. 미로 보수  (0) 2024.11.09
백준 27961. 고양이는 많을수록 좋다  (0) 2024.11.09
'백준' 카테고리의 다른 글
  • 백준 1083. 소트
  • 백준 2179. 비슷한 단어
  • 백준 14916. 거스름돈
  • 백준 30689. 미로 보수
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (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
    코딩테스트준비
    개발자취업
    Til
    99클럽
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 2056. 작업
상단으로

티스토리툴바