[백준] 7983번 : 내일 할거야 (파이썬)
문제
나의 첫번째 답안(틀림)
import sys
input=sys.stdin.readline
n=int(input())
arr=[]
for i in range(n):
d,t=map(int,input().split())
arr.append([d,t])
arr.sort(key=lambda arr:arr[1],reverse=True)
time=arr[0][1]
for i in range(1,n):##############
s=arr[i][0]
e=arr[i][1]
if time>=e:#다음 과제의 마감일이 시작일보다 이른 경우
time=e-s
else:#다음 과제의 마감일이 시작일보다 늦는 경우
time=time-s
print(time)
다음 과제를 고려해주어야 한다고 생각해 두번째 반복문에서 1부터 n까지 반복하도록 하였다.
그러나 이렇게 하면 첫번째 과제를 고려하지 못하므로 반복문을 0부터 n까지로 설정해주어야 한다.
나의 답안
import sys
input=sys.stdin.readline
n=int(input())
arr=[]
for i in range(n):
d,t=map(int,input().split())#소요일, 마감일
arr.append([d,t])
arr.sort(key=lambda arr:arr[1],reverse=True)#마감일 기준 내림차순 정렬
time=arr[0][1]#과제를 시작해야 하는 날
for i in range(n):
s=arr[i][0]
e=arr[i][1]
if time>=e:#마감일이 시작일보다 이른 경우
time=e-s
else:#마감일이 시작일보다 늦는 경우
time=time-s
print(time)
접근 방법
- 마감시간이 늦은 순서대로 나중에 해도 됨
- 과제의 마감일(e)이 시작해야 되는 날보다 늦는다면 다른 과제를 수행하지 못하므로
시작하는 날(time)에서 과제하는데 소요일(s)을 빼주어야 함 - 아니라면 다른 과제에 영향을 주지 않으므로 마감일에서(e) 소요일(s)을 빼서 시작해야 하는 날(time)을 초기화해줌
Author And Source
이 문제에 관하여([백준] 7983번 : 내일 할거야 (파이썬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yj_lee/백준-7983번-내일-할거야-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)