1. 단일 값 입력
입력
fun main() {
val n = readLine()!!.toInt()
println(n)
}
출력
fun main() {
val n = 5
println(n)
}
2. 공백으로 구분된 여러 값 입력
입력
fun main() {
val (a, b, c) = readLine()!!.split(" ").map { it.toInt() }
println("$a $b $c")
}
출력
fun main() {
val (a, b, c) = arrayOf(1, 2, 3)
println("$a $b $c")
}
3. 여러 줄 입력
입력
fun main() {
val n = readLine()!!.toInt()
val lines = mutableListOf<String>()
repeat(n) {
lines.add(readLine()!!)
}
lines.forEach { println(it) }
}
출력
fun main() {
val lines = listOf("line1", "line2", "line3")
lines.forEach { println(it) }
}
4. 정수 배열 입력
입력
fun main() {
val numArray = readLine()!!.split(" ").map { it.toInt() }.toIntArray()
println(numArray.joinToString(", "))
}
출력
fun main() {
val numArray = intArrayOf(1, 2, 3, 4, 5)
println(numArray.joinToString(", "))
}
5. 2차원 배열 입력
입력
fun main() {
val (n, m) = readLine()!!.split(" ").map { it.toInt() }
val matrix = Array(n) {
readLine()!!.split(" ").map { it.toInt() }.toIntArray()
}
matrix.forEach { println(it.joinToString(" ")) }
}
출력
fun main() {
val matrix = arrayOf(
intArrayOf(1, 2, 3),
intArrayOf(4, 5, 6),
intArrayOf(7, 8, 9)
)
matrix.forEach { println(it.joinToString(" ")) }
}
6. 빠른 입력 (BufferedReader)
입력
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val n = reader.readLine().toInt()
val numArray = reader.readLine().split(" ").map { it.toInt() }.toIntArray()
println(numArray.joinToString(", "))
}
7. 빠른 출력 (BufferedWriter)
출력
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() {
val writer = BufferedWriter(OutputStreamWriter(System.out))
val numArray = intArrayOf(1, 2, 3, 4, 5)
writer.write(numArray.joinToString(", "))
writer.newLine()
writer.flush()
}
8. 파일 입출력
파일에서 읽기
import java.io.File
fun main() {
val lines = File("input.txt").readLines()
lines.forEach { println(it) }
}
파일에 쓰기
import java.io.File
fun main() {
val output = File("output.txt")
output.writeText("Hello, World!\\n")
output.appendText("Welcome to Kotlin.")
}
9. 문자열 배열 입력
입력
fun main() {
val n = readLine()!!.toInt()
val stringArray = Array(n) { readLine()!! }
stringArray.forEach { println(it) }
}
출력
fun main() {
val stringArray = arrayOf("apple", "banana", "cherry")
stringArray.forEach { println(it) }
}
10. 정수 배열 출력 (formatted)
출력
fun main() {
val numArray = intArrayOf(1, 2, 3, 4, 5)
println(numArray.joinToString(prefix = "[", postfix = "]", separator = ", "))
}
정리
- 단일 값 입력/출력: readLine()!!.toInt(), println()
- 공백으로 구분된 여러 값 입력/출력: split(" ").map { it.toInt() }
- 여러 줄 입력/출력: repeat(n) { readLine()!! }
- 정수 배열 입력/출력: split(" ").map { it.toInt() }.toIntArray()
- 2차원 배열 입력/출력: Array(n) { readLine()!!.split(" ").map { it.toInt() }.toIntArray() }
- 빠른 입력: BufferedReader(InputStreamReader(System.in))
- 빠른 출력: BufferedWriter(OutputStreamWriter(System.out))
- 파일 입출력: File("filename").readLines(), File("filename").writeText()
- 문자열 배열 입력/출력: Array(n) { readLine()!! }
- 정수 배열 포맷된 출력: joinToString(prefix = "[", postfix = "]", separator = ", ")