알고스팟 문제 링크: https://algospot.com/judge/problem/read/GRADUATION
각 학기마다 열리는 전공과목을 선수과목과 학기당 들을 수 있는 최대 과목수를 고려하여 알맞게 수강했을때
졸업요건을 충족시키는 최소 이수 학기를 구하는 문제이다.
현재 학기와 이제까지 들은 과목들이 주어졌을때 앞으로 들어야 하는 최소 학기를 반환하는 함수를 만들고
메모이제이션을 사용하는 다이나믹 프로그래밍기법을 이용하면 문제를 풀 수 있다.
이때 각 과목의 선수과목과 각 학기에 열리는 과목들을 비트마스크 기법을 사용하여 표현한 것에 주목하자.
코드 원본: https://github.com/sbl133/JongmanBook/blob/main/16.%20bitmask/GRADUATION.cpp
댓글을 통한 코드리뷰, 질문, 지적 언제든 환영입니다!
reference: 프로그래밍 대회에서 배우는 알고리즘 문제해결전략2
'Algorithm > algospot' 카테고리의 다른 글
algospot 조세푸스 문제 (문제 ID: JOSEPHUS) c++ (0) | 2021.09.27 |
---|---|
algospot 크리스마스 인형 (문제 ID: CHRISTMAS) c++ (0) | 2021.09.27 |
algospot 너드인가, 너드가 아닌가? (문제 ID: NERDS) c++ (0) | 2021.09.16 |
algospot 보물섬 (문제ID: TREASURE) c++ (0) | 2021.09.16 |
algospot 핀볼 시뮬레이션(문제 ID: PINBALL) (0) | 2021.09.14 |