1개의 댓글이 있습니다.
-
-
free-lunch -
C로 제출하니 통과하네요~
10년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
C로 제출하니 통과하네요~
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
ruokjh
그리드 풀이법으로 풀었구요 책의 코드를 참조해서 만들었습니다.
정렬은 라이브러리 안쓰고 직접 구현해서 했구요
문제에 주어진 테스트케이스랑 제가 생각했던 몇몇 테스트케이스 다 돌렸을땐 올바르게 나오는데
제출하면 오답이 되네요
어디가 문제인지 잘 모르겠어요 도와주세요ㅠㅠ
코드는 다음과 같습니다.
~~~ c++
#include
int testcase = 0;
int n = 0; //도시락 개수
struct lunchbox {
int heattime; //도시락 데우는데 걸리는 시간
int eattime; //도시락 먹는데 걸리는 시간
}infolunch[10001];
int max(int a, int b) {
if (a > b) return a;
else return b;
}
int solve() {
int ret = 0, begineat = 0;
for (int i = 0; i < n; i++) {
begineat += infolunch[i].heattime;
//(이전 도시락을 데우시간 + 먹는 시간)과 (이전 도시락 + 현재 도시락 데운시간 + 먹는 시간)을 비교, 큰 값을 남김
//왜냐하면 도시락 먹는 시간이 극단적으로 큰 경우 처음 데운 도시락을 다 먹기전에 나중 도시락을 데우고 다 먹을 수 있으므로
ret = max(ret, begineat + infolunch[i].eattime);
}
return ret;
}
int main() {
//입력
scanf("%d", &testcase);
while (testcase) {
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &infolunch[i].heattime);
for (int j = 0; j < n; j++)
scanf("%d", &infolunch[j].eattime);
}
~~~
10년 전