nhs0912   7년 전

안녕하세요. 수 정렬하기3 에 대해서 질문 하려고요. 

다름이 아니라 자꾸 시간 초과가 나와서 어떤 부분에서 시간이 많이 소비되는지 제 소스를 보고 파악을 못하겠네요. 

구글링에서 다른 사람들 수 정렬하기3 소스(c++)를 보면 제 소스랑 별로 다른게 없고 단지 언어 차이만 있는거 같은데...

자바 언어가 다른 언어보다는 좀 느리잖아요~ 

그래서 자바로는 이 문제 못푸는거 아닌가 라는 제 자신을 합리화하게 되네요...ㅠㅠ 

제 소스를 보고 어떤 부분을 고쳐야할까요??시간을 좀 더 빠르게 한다면요??


제 소스 간단하게 설명을 한다면 

<숫자 카운팅을 하고서 누적까지 했다가 시간이 더 소비 되는거 같아서 제외하였습니다.>

그냥 Counting Sort해서 숫자 갯수만 세고서 바로 그 갯수 만큼 출력하였어요~ 


doju   7년 전

Java의 입출력 속도는 생각보다 더 많이 느립니다.. Java로 이 문제를 풀려면 BufferedReader, BufferedWriter 등으로 입출력 속도를 개선하지 않으면 불가능해 보입니다.

풀이 자체는 문제의 의도대로 푸신 것 같고, result 배열 없이 countArr 배열만 이용해서 답을 출력하시면 메모리를 아낄 수 있습니다.

nhs0912   7년 전

result배열 없이 기존의 숫자가 들어있는 numbers  배열에 정렬된 숫자를 넣어주면 메모리를 아낄수 있다는 말씀이시죠???

doju   7년 전

문제가 메모리 제한이 상당히 작길래 덧붙인 말인데, 결국 출력만 하면 되니까 result 배열을 거치지 않고 그냥 i를 countArr[i]번 출력하면 된다는 뜻이었어요.

nhs0912   7년 전

답변 감사합니다. 

BufferedReader  와 BufferedWriter 사용해서 풀었네요... 정말 Scanner랑 속도 차이가 많이 나나봐요! 

덕분에 하나 배워갑니다^^ 

댓글을 작성하려면 로그인해야 합니다.