선택 정렬 잘못 구현 하셨네요, 보통의 선택정렬이면 아래와 같이 구현 합니다.
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
}
}
}
하지만 이 문제는 일반적인 정렬로 풀리는 문제가 아닙니다. 입력이 1000만까지 주어지기 때문에 선택 정렬이 아니라, 퀵 정렬을 사용해도 출력으로 인해 아마 시간초과가 날 것으로 예상 됩니다.
숫자가 1~10,000 까지 주어지는 것을 이용하여 해당 숫자가 몇번 입력이 되는지를 세어서 이 횟수만큼 순차적으로 출력 시키는 방법으로 하셔도 제한 시간내에 통과는 됩니다.
다만, 시간을 더 줄이려면 출력할 숫자를 문자열 형태로 저장하였다가 출력하는 방식으로 출력 횟수를 최소화 하면 되겠습니다.
yky2798 7년 전
제 코드를 채점해보면 틀렸습니다 라고 뜹니다.
런타임 에러도 아니고 왜 처음부터 틀렸다고 하는지 이해가 잘 안되네요.
알고리즘은 선택정렬을 사용했습니다.
도움을 주시면 감사하겠습니다.