문제 링크입니다: https://www.acmicpc.net/problem/13904
오랜만에 그리디 문제였습니다.
알고리즘은 아래와 같습니다.
1. 입력값들을 점수를 기준으로 내림차순 정렬을 하고 점수가 같다면 마감일이 빠른 순대로 정렬을 진행합니다.
2. 이제 [0, N) 까지 정렬된 배열을 돌면서 v[i].dueDate 날 수행할 과제 점수를 dayScore 배열 v[i].dueDate 번째 인덱스에 넣어줍니다.
2.1 while문은 (v[i].dueDate - 1) 번째 날부터 첫 날까지 순회하며 과제를 수행하는 날을 찾기 위한 반복문입니다.
2.2 과제를 수행할 수 있는 날이라면 즉, day가 0 이상이라면 dayScore 배열에 과제 점수를 저장해줍니다.
3. 마감일이 [0, 1000) 이므로 0부터 N이 아닌 0부터 MAX 까지 반복문을 돌리며 과제 점수를 모두 더해주고 출력해줍니다.
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
백준 16637번 괄호 추가하기 (6) | 2020.05.24 |
---|---|
백준 1019번 책 페이지 (0) | 2020.05.22 |
백준 1949번 우수 마을 (0) | 2020.05.18 |
백준 15829번 Hashing (0) | 2020.05.18 |
백준 16500번 문자열 판별 (0) | 2020.05.14 |