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

 

1263번: 시간 관리

진영이는 캠프 조교를 온 후 효율적으로 시간 관리를 해야 한다는 것을 깨달았다. 진영이는 하루에 해야 할 일이 총 N개가 있고 이 일들을 편하게 1번부터 N번까지 차례대로 번호를 붙였다. 진영

www.acmicpc.net

기본적인 그리디 문제다. 오래전에 오답판정을 받고서 이번에 다시 풀어보았다. 사소한 부분을 놓친 거라 원인을 알고 나서 허탈했다.

 

풀이

현실에서의 시간은 24시간이지만, 문제에서 주어지는 시간의 최댓값은 1,000,000이다. 오답의 원인도 해당 부분을 꼼꼼히 보지 않아서 생긴 것이다. 정답으로 출력할 time변수를 시작시간의 최댓값 1,000,000으로 설정한다.

 

입력되는 일들을 마감시간을 기준으로 내림차순으로 정렬한 뒤, 시작시간이 마감시간보다 뒤에 있다면 시작시간을 (마감시간 - 작업시간)으로 변경한다.

 

만일 시작시간이 마감시간보다 앞에 있다면 작업시간만큼 앞당긴다.(빼준다.) 마지막으로 정답을 출력할 때, 시작시간이 음수라면, -1을 출력한다.

 

정답 코드

'Problem Solving > BOJ' 카테고리의 다른 글

[14464] 소가 길을 건너간 이유 4  (0) 2023.02.01
[1544] 사이클 단어  (0) 2023.01.30
[2607] 비슷한 단어  (2) 2023.01.27
[6503] 망가진 키보드  (0) 2023.01.24
[15831] 준표의 조약돌  (0) 2023.01.23

+ Recent posts