런타임에러 떠서
이게 왜그럴까 찾아본 결과
제한조건이 메모리 8mb 임...
시바..
더불이 이건 내가 쓴 코드
#include <stdio.h>
#include <stdlib.h>
void swap(int *x, int *y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
int main()
{
int num, roop, *a;
scanf_s("%d", &num);
a = (int*)malloc(sizeof(int)*num);
for (roop = 0; roop < num; roop++)
{
scanf_s("%d", &a[roop]);
}
for (int i = 0; i < num; i++)
{
for (int j = i + 1; j < num; j++)
{
if (a[i] > a[j]) swap(&a[i], &a[j]);
}
}
for(int i = 0; i < num; i++) printf("%d\n", a[i]);
return 0;
}
타임아웃도 걸릴 것 같이 생겼다,,,
솔직히 나도 그렇게 생각하기는 하는데 일단 런타임부터 해결하공 ㅠ
정렬할 필요가 없다.
메모리는 그렇다치고 이거 O가 몇임요? n^2 이면 1000만개는 거의 불가 아님?
어셈블리로 짜면 됨 아님 바이너리코드로 짜거나
이걸 다 배열에 때려잡아넣고 정렬을 돌려야 하나 그건 좀 잘 모르겠네여...
정렬 안 해도 된다.
일단 저도 한 번 해보고 와야쥥...
아까 그문제 코세님한테 받은 해결방법/소스 저도 좀 주세요
10000 이하 자연수라고 했으니까 int 말고 short
아 얼케 푸는지 알겠네 ㅋㅋㅋㅋㅋㅋㅋㅋ
short여도 갯수가 4M 넘어가면 뒈-짖
값의 범위랑 갯수를보셈
정렬하라고 낸게 아님
정렬로 풀었는데 정답 뜨는데여
맞았당
띠용
10^7개가 들어오는데 8mb선에서 됨?
걍 배열에 들어올때마다 값 추가해서 0부터 만까지 받은거 내뱉게 했는데 뒤지네
개수만큼 정렬이 답인듯;
저도 안될 줄 알았는데 되서 당황. 최악 케이스에 10^6개 넘는 게 없나봐요... 일단 타임오버부터 처리 해 보시는게
메모리풀 쓰세요
개굴표 메모리풀은 효율적인 자원 관리로 좀더 많은 메모리가 사용가능합니다
정렬 알고리즘은 counting sort 했어여
채점을 보아하니 자바충에겐 매우 관대한 듯. 자바충은 찌그러져야겠다
어떻게 풀어여? 15비트 해도 8메가 좀 넘는데
아둔의dz//되서->돼서 (되어 = 돼임) [리듬 맞춤법 봇♬]
관노//갯수->개수 (개수 (個數)[명사] : 한 개씩 낱으로 셀 수 있는 물건의 수효.) [리듬 맞춤법 봇♬]
20160525//갯수->개수 (개수 (個數)[명사] : 한 개씩 낱으로 셀 수 있는 물건의 수효.) [리듬 맞춤법 봇♬]