(마력 값 - 1)을 배열의 index로 사용하여 갯수를 증가, 감소 시키는 방식으로 갯수를 관리하여 계산하였습니다.
마력약의 갯수가 0개일 경우도 처리하였지만 계속 오답처리가 되네요..
문제의 테스트케이스와 제 나름대로 몇가지 경우를 만들어서 실행해본 결과 아무 이상이 없었습니다.
어느 부분이 잘못된 것인지 알 수 있을까요??
#include <stdio.h>#define MAX 10000intmp[MAX];intmain(void){intt,i,j,k;intn,m,input;intmax=0,total;scanf("%d",&t);for(i=0;i<t;i++){scanf("%d %d",&n,&m);total=0;for(j=0;j<n;j++){scanf("%d",&input);mp[input-1]++;if(max<input){max=input;}}for(j=0;j<m;j++){total+=max;mp[max-1]--;if(mp[max-1]==0){for(k=max-2;k>=0;k--){if(mp[k]!=0){max=k+1;break;}}if(k==-1){max=0;break;}}}printf("%d\n",total);}return0;}
tyjk32
(마력 값 - 1)을 배열의 index로 사용하여 갯수를 증가, 감소 시키는 방식으로 갯수를 관리하여 계산하였습니다.
마력약의 갯수가 0개일 경우도 처리하였지만 계속 오답처리가 되네요..
문제의 테스트케이스와 제 나름대로 몇가지 경우를 만들어서 실행해본 결과 아무 이상이 없었습니다.
어느 부분이 잘못된 것인지 알 수 있을까요??
10년 전