알고리즘 공부/미분류

백준 10989번 with Kotlin #IntArray

_우지 2021. 7. 22. 15:31

수 정렬하기 3 성공

시간 제한메모리 제한제출정답맞은 사람정답 비율

3 초 (하단 참고) 8 MB (하단 참고) 114200 23776 18293 23.107%

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1 복사

10 5 2 3 1 4 2 3 5 1 7

예제 출력 1 복사

1 1 2 2 3 3 4 5 5 7

출처

  • 문제를 만든 사람: baekjoon
  • 데이터를 추가한 사람: cgiosy
  • 문제의 오타를 찾은 사람: joonas

비슷한 문제

알고리즘 분류

시간 제한

  • Java 8: 3 초
  • Java 8 (OpenJDK): 3 초
  • Java 11: 3 초
  • Kotlin (JVM): 3 초

메모리 제한

  • Java 8: 512 MB
  • Java 8 (OpenJDK): 512 MB
  • Java 11: 512 MB
  • Kotlin (JVM): 512 MB

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
 
 
val br = BufferedReader(InputStreamReader(System.`in`))
fun main(){
    val bw = BufferedWriter(OutputStreamWriter(System.out))
 
    val N = br.readLine()!!.toInt()
    val list = IntArray(N)
    for(i in 0 until N){
        list[i]=br.readLine()!!.toInt()
    }
    list.sort()
    for(i in 0 until N){
        bw.write("${list[i]}\n")
    }
    bw.flush()
    bw.close()
}
cs

 

나는 줄 곧 배열을 선언할때 MutableList로 선언을 했었는데, 이러한 코딩의 단점을 알려주는 문제였다.

List는 여러가지 메소드를 지원을 하는 대신 메모리와 시간이 상대적으로 느리다.

이를 해결하기위해선 원래 배열을 선언하는 방법인 IntArray 같은 방법을 사용해야했다.