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