문제출처 : https://www.acmicpc.net/problem/1817
정말조심해야하는게 책은 차곡차곡쌓여있기 때문에 차례대로 박스에 넣을 수밖에 없다.
그래서 정렬하면 안된다.code
#include <stdio.h> #include <stdlib.h> int main() { int N, M, i, cnt = 0, sum = 0; scanf("%d %d", &N, &M); int* book = (int*)malloc(N * sizeof(int)); for (i = 0; i < N; i++) scanf("%d", &book[i]); for (i = 0; i < N; i++) { if (M >= sum + book[i]) sum += book[i]; else { sum = book[i]; cnt++; } } if (N) printf("%d", cnt + 1); else printf("0"); free(book); return 0; }
그리고 배열이 10만이라서 동적할당을 해주었다.
나머지 알고리즘은 정말 쉽다.
다만 N이 0인경우만 따로 빼주어야 한다.