코틀린/백준

[백준 10926] ??! - 코틀린(Kotlin)

Jakorithm 2023. 10. 2. 00:22
728x90

문제

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

 

10926번: ??!

준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때

www.acmicpc.net

 

 

코드

입력받은 문자열에 "??!" 문자열을 붙인 후 출력하는 문제다.

 

코틀린 표준 라이브러리 활용

fun main() {
    val input = readLine()
    println("$input??!")
}

fun main() {
    val input = readln()
    println("$input??!")
}

fun main() {
    val input = readlnOrNull()
    println("$input??!")
}
  • readLine() : 입력을 한 줄씩 읽는다. 입력이 끝나면 null을 반환한다.
  • readln() : 개행 문자(\n)를 포함하여 한 줄씩 읽는다. 입력 값이 없다면 ReadAfterEOFException을 발생시킨다.
  • readlnOrNull : 개행 문자(\n)를 포함하여 한 줄씩 읽는다. 입력 값이 없다면 null을 반환한다.

 

Scanner 활용

import java.util.Scanner

fun main() {
    val sc = Scanner(System.`in`)
    println("${sc.nextLine()}??!")
}
  • 자바 Scanncer를 활용하여 문자열을 입력받을 수 있다.
import java.util.Scanner

fun main() = with(Scanner(System.`in`)) {
    println(nextLine() + "??!")
}
  • with 블록을 통해 자바의 Scanner를 보다 가독성 있게 표현할 수 있다.

 

BufferedReader 활용

import java.io.BufferedReader
import java.io.InputStreamReader

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    println("${br.readLine()}??!")
}
  • BufferedReader와 InputStreamReader를 통해 한 줄씩 문자열을 입력받을 수 있다.
import java.io.BufferedReader
import java.io.InputStreamReader

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    println(readLine() + "??!")
}
  • 마찬가지로 with 블록을 입력받아 처리할 수 있다.
728x90