본문 바로가기
스터디(beakjoon)

Kotlin] 백준 15552번 문제 풀이

by 김마리님 2023. 4. 14.

https://www.acmicpc.net/problem/15552

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

 

 

풀이

더보기

이거.. 설명에 나와 있는데

Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. 
BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.

코틀린도 jvm 기반이라 자바처럼 버퍼리더 쓰면 됩니다. 플러쉬 한 번에 하면 된다는데, 이 말이 무슨 말이냐면.. bufferwriter.write()로 글을 쌓아놓고 한 번에 플러쉬 하면 된다는 말이다.

아 근데 이거 write 하면 개행을 자동적으로 해주지 않기 때문에 bufferwriter.newLine()을 통해 개행 한번씩 해줘야 백준이 원하는 형식의 개행처리를 할 수 있다.

 

이걸 어떻게 하냐면..

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun main(args: Array<String>) {
    question15552()
}

fun question15552() {
    var reader = BufferedReader(InputStreamReader(System.`in`))
    var writer = BufferedWriter(OutputStreamWriter(System.out))
    var case = reader.readLine().toInt()

    while (case > 0) {
        var numbers = reader.readLine().split(" ").map { it.toInt() }
        writer.write("${numbers[0] + numbers[1]}")
        writer.newLine()

        case -= 1
    }

    writer.flush()

}
반응형