Computer Science/Algorithm
[Baekjoon] Greedy - 23028 5학년은 다니기 싫어요
ddu0422
2023. 8. 16. 09:59
문제
23028번: 5학년은 다니기 싫어요
2022년 1학기에는 전공 수업이 4과목, 비전공 수업이 3과목이 주어진다. 아리는 전공 2과목, 비전공 2과목을 듣게 되면 전공학점이 66학점, 총 학점이 132학점이 된다. 그래서 총 8학기 안에 졸업을
www.acmicpc.net
풀이
"""
총: 130학점 이상 수강
전공: 66학점 이상 수강
N학기 수강 완료
현재 전공 학점: A
현재 전체 학점: B
n학기별 전공과목 xn, 비전공과목yn
n학기당 최대 6과목 수강 가능
1과목당 3학점 (최대 18학점)
!8학기 안에 졸업!
"""
n, a, b = map(int, input().split())
semester = []
for _ in range(10):
x, y = map(int, input().split())
semester.append((x, y))
def solution(n, a, b, semester):
# 남은 학기
rest_semester = 8 - n
# 남은 전공 학점
rest_major = 66 - a
rest_credit = 130 - b
# 학점을 채운 경우
if a <= 0 and b <= 0:
return True
for major, minor in semester:
rest_semester -= 1
major_credit = major * 3
minor_credit = min(minor, (6 - major)) * 3
rest_major -= major_credit
rest_credit -= (major_credit + minor_credit)
# 남은 기간동안 전공과 총 학점을 채운 경우
if rest_semester >= 0 and rest_major <= 0 and rest_credit <= 0:
return True
return False
print('Nice' if solution(n, a, b, semester) else 'Nae ga wae')
채점 결과