-
728x90
realine() 이나 readln()을 썼다간 시간초과..!
import java.io.BufferedReader import java.io.InputStreamReader import java.util.StringTokenizer fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val sb = StringBuilder() val i = br.readLine().toInt() val array = IntArray(i) for (j in 0 until i) { val input = br.readLine() if (input == null || input.isBlank()) { break } val st = StringTokenizer(input) val a = st.nextToken().toInt() val b = st.nextToken().toInt() array[j] = a + b } for (j in 0 until i) { sb.append(array[j]).append('\\n') } println(sb) }
기존 코드에서는 readLine() 함수를 사용하여 한 줄씩 입력을 받았는데, 이 작업은 입력 버퍼에서 매번 한 줄을 읽어오는 작업을 수행하므로 비효율적입니다.
**BufferedReader**는 입력 스트림을 버퍼링하여 한 번에 여러 문자를 읽어오는 기능을 제공합니다. 따라서 **BufferedReader**를 사용하면 효율적인 입력 처리가 가능해집니다.
**StringBuilder**는 문자열을 효율적으로 처리하기 위한 클래스입니다. 여러 문자열 조각을 연결할 때마다 새로운 문자열 객체를 생성하는 것보다 **StringBuilder**를 사용하여 문자열을 연결하면 메모리 할당과 객체 생성의 부하를 줄일 수 있습니다.
'백준' 카테고리의 다른 글
나이순 정렬 (0) 2023.07.31 2751번 수 정렬하기 (0) 2023.07.31 소수 1312번 (좋은 문제..) (0) 2023.07.31 EOF의 이해 (0) 2023.07.31 A+B 한줄에 입력 (0) 2023.07.31