이 문제는 시간초과에 대해 신경써야 하는 문제이므로 비교적 성능이 무거운 Scanner의 사용을 배제한다
1. 아슬아슬하게 채점된 BufferedReader + BufferedWriter + Arrays.sort()
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val N = br.readLine().toInt()
val array = IntArray(N)
for (i in 0 until N) {
array[i] = br.readLine().toInt()
}
br.close()
array.sort()
// Arrays.sort(array)
for (i in 0 until N) {
bw.write(array[i].toString())
bw.newLine()
}
bw.flush()
bw.close()
}
array.sort()를 들어가보면 결국 Arrays.sort(array)를 실행시키는것은 동일하나 Arrays.sort(array)의 경우 자바 유틸을 import 시켜야 하기 때문에 array.sort()를 사용하였다
메모리 효율도 조금더 높아지긴 했는데 이것때문인지는 정확히 모르겠다
2. BufferedReader + BufferedWriter + IntArray()
fun main() {
val br = System.`in`.bufferedReader()
val bw = System.`out`.bufferedWriter()
val N: Int = br.readLine().toInt()
val array = IntArray(10001)
for (i in 0 until N) {
array[br.readLine().toInt()]++
}
br.close()
for (i in array.indices) {
bw.write("$i\n".repeat(array[i]))
}
bw.close()
}
코드도 더 짧아지고 시간도 정확히 절반이나 단축됐다..!
'개발 > 알고리즘' 카테고리의 다른 글
[알고리즘] 백준 2798번 : 블랙잭 (Kotlin) (0) | 2020.12.08 |
---|---|
[알고리즘] 백준 10870번 : 피보나치 수 5 (Kotlin) (0) | 2020.12.07 |
[알고리즘] 백준 1929번 : 소수 구하기 (Koltin) (0) | 2020.12.06 |
[알고리즘] 백준 2839번 : 설탕 배달 (Kotlin) (0) | 2020.12.02 |
[알고리즘] 백준 1152번 : 단어의 개수 (Kotlin) (0) | 2020.12.01 |
댓글