티스토리 뷰

입력

 

1. readLine() 함수

 

한 줄의 텍스트를 입력받는 함수.

readLine()은 String? 타입으로 입력을 받는다.

String?은 String이지만 null 타입을 허용한다는 의미이다.

 

예제를 통해 살펴보자.

fun main() {
    val size : Int = readLine()!!.toInt()
    val arr = Array<Int>(size) { readLine()!!.toInt() }
    var sum = 0

    for (i in arr) {
        sum += i
    }
    println("총합 : $sum")
}

readLine()!!는 readLine()이 null을 허용하는 타입이지만, 강제적으로 null이 아니라고 알려주고 type을 변환하는 것이다.

데이터가 무조건 문자열 형식으로 저장되기 때문에 숫자를 입력받고 싶다면 문자열을 숫자로 변경해주어야 한다.

arr 배열과 같이 원하는 개수만큼 반복문을 사용하여 입력받을 수도 있다.

 

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net

fun main() {
    val input = readLine()!!.split(" ").map { it.toInt() }
    var h = input[0]
    var m = input[1] - 45

    if (m < 0) {
        m += 60;
        if (--h < 0) {
            h += 24;
        }
    }
    println("$h $m")
}

한 줄에 여러 숫자를 입력받은 경우에는 split 함수를 통해 " "를 제거하여 각 숫자를 List<String>으로 받은 후에 map 함수를 통해 문자열을 숫자로 바꿔줄 수 있다.

 

 

2. Scanner

 

자바에서 Scanner를 가져와서 입력을 받을 수 있다.

next(), nextInt(), nextDouble()는 공백 혹은 개행문자 기준으로 입력 받는다.

nextLine()은 String 타입으로 문자 혹은 문자열을 입력 받는데 공백도 같이 받으며 개행문자로 구분이 된다는 점에서 next()와 차이가 있다.

 

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

import java.util.*

fun main() {
    val sc = Scanner(System.`in`)
    val a = sc.nextInt()

    if (a >= 90) println("A")
    else if (a >= 80) println("B")
    else if (a >= 70) println("C")
    else if (a >= 60) println("D")
    else println("F")
}

 


 

출력

 

출력함수로는 println(), print()가 있다.

println()은 출력 후 개행을 해준다는 점만 다르다.

 

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

fun main() {
    val arr = Array<Int>(9) { readLine()!!.toInt() }
    var idx = -1
    var max = 0

    for (i in 0..8) {
        if (max < arr[i]) {
            max = arr[i]
            idx = i + 1
        }
    }
    println("$max")
    println("$idx")
}

print 함수를 쓸 때 문자열 템플릿을 사용할 수 있다.

 

 

문자열 템플릿

 

문자열 템플릿이란 출력 시 문자열 안에서 변수를 불러와 출력하는 방법이다.

$ 뒤에 호출하고 싶은 변수의 이름을 적어주면 변수의 값을 가져올 수 있다.

val max = 1000
println("$max")

 

변수 뒤에 띄어쓰기 없이 다른 문자열을 출력하는 경우에는 주의해야 한다.

뒤에 있는 문자열까지 변수 이름으로 인식해서 컴파일 에러가 발생하기 때문이다.

이럴 경우에는 중괄호({})를 사용해주면 컴파일 에러가 발생하지 않는다.

val greeting = "Hello"
println("$greeting안녕") // 컴파일 에러
println("${greeting}안녕") // Hello안녕

 

중괄호 안에는 식도 넣을 수 있다.

val a = 10
val b = 20
println("$a + $b = ${a + b}")
println("Hello, ${if (args.isNotEmpty()) args[0] else "someone"}!")

 

마지막으로 $를 문자열로 쓰고 싶을 때는 백슬래시 \를 이용해서 이스케이프 문자로 사용할 수 있다.

println("\$name")

 

'프로그래밍 언어 > Kotlin' 카테고리의 다른 글

Kotlin 기본 다지기 4  (0) 2021.07.26
Kotlin 기본 다지기 3  (0) 2021.07.25
Kotlin 기본 다지기  (0) 2021.07.25
Kotlin 기본 다지기 2  (0) 2021.07.24
🌻 Kotlin 기본 문법 🌻  (0) 2021.07.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함