본문 바로가기
Algorithm and PS/백준(Kotlin)

백준 - 10871 A+B (코틀린)

by ESHC 2021. 5. 7.

[문제]

www.acmicpc.net/problem/10871

 

10871번: X보다 작은 수

첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

www.acmicpc.net

[코드]

import java.util.*
import java.io.*

//기본 문제
fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    val st1 = StringTokenizer(br.readLine())
    val st2 = StringTokenizer(br.readLine())

    val n = st1.nextToken().toInt()
    val x = st1.nextToken().toInt()
    for(i in 1 .. n){
        val a = st2.nextToken().toInt()
        if( x > a)
            bw.write("$a ")
    }
    bw.flush()
}

[풀이]

크기 비교하는 아주 기본적인 문제.

입력에서 한 줄에 띄어쓰기가 있으니 StringTokenizer를 이용하였고 

출력에서는 bw.write를 이용하였지만 다양한 방법을 시도해봤다.

StringBuilder()+ println() 과 StringBuilder()와 bw.write()를 쓴 결과

근소한 차이지만 StringBuilder()와 bw.write()가 가장 빠르게 나왔다.

출력할 때 반복문이 있고 많은 양을 출력할 때는 StringBuilder()와 bw.write()을 쓰고

출력값이 하나일 때는 println()을 쓰고

그 외에는 bw.write()을 쓰는게 좋아보인다.

 

Github : https://github.com/eshc123/2021AlgorithmStudy/blob/main/src/main/PS/baekjoon/10871.kt

댓글