Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- maven #메이븐 #빌드 #build #lifecycle
- JAVA #필수값
- kafka connect #debizium #transform
- hexagonal architecture #layer architecture #아키텍쳐 #헥사고날
- 정올
- 코드그라운드
- 김씨만행복한세상
- 페이지 전환
- 1108
- 최단거리
- 새로운방
- 2613
- 스택
- 오류교정
- Queue
- kafka #consumer #autoStartup
- sql #오라클 #oracle #sequence #foreach #insert #mybatis
- 1037
- 페이지전환
- 태그를 입력해 주세요.
- 큐
- Floyd
- 새로운 방
- 토마토(고)
- 암스트롱 수
- 알고리즘
- Floyd 알고리즘
- kafka #ackmode #manual #acknowledge
- 1045
- vue
Archives
- Today
- Total
별집사의 IT세상
NORMAL2 수강신청 본문
반응형
입력조건
출력조건
입력 | 출력 |
---|---|
1 4 13 2 4 6 8 | Case #1 12 |
dp를 이용해 해당 이수 학점을 들을 수 있을 때는 1, 없을 때는 0으로 저장하였다.
해당 학점(temp)에서 각 학점(sub[i])을 뺐을 때 나오는 학점을 들을 수 있다면,(dp[temp-sub[i]]==1) 해당 학점도 들을 수 있게 된다.
1학점부터 M학점까지 계산하였고, M에서 최대한 가까운 값을 출력하였다.
최적화로 생각해 볼 것은 각 케이스마다 배열을 동적 할당하여 메모리를 줄이는 방법과, 문제에 설명이 안되있지만 과목이 크기순으로 정렬을 확인하는 점이다.
문제에 제대로 설명이 안되어 있는데, 과목을 중복으로 들어도 되게 코딩을 했는데 통과한 걸 보면 중복으로 들어도 되나보다(대학 강의를 어떻게 중복으로 듣나..)
#includeint main(void) { setbuf(stdout, NULL); int dp[10001] = { 0 }; //해당 학점을 들을 수 있는가? int sub[5000] = { 0 }; int i, j; int T; int test_case; int N, M; int temp; int ans; scanf("%d", &T); for (test_case = 1; test_case <= T; test_case++) { scanf("%d %d", &N, &M); for (i = 0; i < N; i++) { scanf("%d", &sub[i]); dp[sub[i]] = 1; //각 과목에 해당하는 학점은 들을 수 있으므로 1로 저장 } temp = 1; while (temp <= M) { if (dp[temp]) { //이미 해당 학점을 들을 수 있으면 스킵 temp++; } else { for (i = 0; i < N; i++) { //해당 학점에서 각 과목 학점을 뺀 학점을 들을 수 있고, 각 과목 학점이 해당학점 보다 작은 경우 해당 학점도 들을 수 있다. if (dp[temp - sub[i]] && sub[i] <= temp) { dp[temp] = 1; break; } } temp++; } } ans = M; while (!dp[ans]) { ans--; } printf("Case #%d\n", test_case); printf("%d", ans); for (i = 1; i <= M; i++) { dp[i] = 0; } for (i = 0; i < N; i++) { sub[i] = 0; } } return 0; }
반응형
'IT > 코드그라운드' 카테고리의 다른 글
NORMAL2 새로운 방 (0) | 2017.04.11 |
---|---|
NORMAL 김씨만 행복한 세상 (0) | 2017.04.05 |
EASY 시험공부 (0) | 2017.02.20 |
Comments