문제출처 : https://www.acmicpc.net/problem/23028
알고리즘은 조금만 생각해보면 쉽게 짤수있다.
팁은 전공학점과 총 학점이 있는데, 전공학점을 우선시해서 들어야 한다는것이다.
또, 전공학점을 굳이 66학점, 총학점은 130학점을 딱맞출 필요는 없다는것이다.
그냥 들을수 있는한 최대학점으로 듣고, 다듣고나서 전공66, 총학점 130이 안되면 그때 Nice, Nae ga wae를 출력해도 늦지않다.code
#include <stdio.h> int main() { int N, A, B, i, X[10] = { NULL }, Y[10] = { NULL }, cnt, score = 0; scanf("%d %d %d", &N, &A, &B); for (i = 0; i < 10; i++) scanf("%d %d", &X[i], &Y[i]); cnt = 8 - N; if (B >= 130 && A >= 66) printf("Nice"); else { for (i = 0; i < cnt; i++) { A += X[i] * 3; B += X[i] * 3; score = 6 - X[i]; if (score < Y[i]) B += score * 3; else B += Y[i] * 3; score = 6; } if (B >= 130 && A >= 66) printf("Nice"); else printf("Nae ga wae"); } return 0; }