Kotlin에서 표준 입력

Kotlin에서 경기 프로그래밍을하고 싶었기 때문에 각서에
문법 등은 다른 기사에 정중하게 정리되어 있으므로 그쪽을 참조하십시오
시작하자 Kotlin (기본편)

지적 등의 코멘트로 받을 수 있으면 다행입니다.

입력



한 줄에 하나


readLine() 사용
val s = readLine() //String
val n = readLine()!!.toInt() // Int
readLine()는 입력을 문자열로 반환하는 함수이므로 숫자로 취급하는 경우 별도의 캐스트를 넣으십시오 (double 등도 동일).

덧붙여서 Integer.parseInt() 로 캐스팅하는 방법도 있습니다. 약간 여기가 빠릅니다.
대량의 수치의 입력을 받는 경우는 이쪽을 사용하는 것도 좋을지도 모릅니다

↓"0"을 수치로 캐스트했을 때의 처리 속도의 차이( measureNanoTime 함수로 측정)


한 줄에 여러


a b c 와 같이 공백으로 구분된 입력입니다.split() 사용
val s = readLine()!!.split(" ") // List<String>
val n = readLine()!!.split(" ").map(String::parseInt) // List<Int>
split() 는 Python 등과 달리 공백 문자로도 인수가 필요한 점에 유의하십시오
각 값의 캐스트는 map()parseInt 를 건네주는 것으로 간결하게 할 수 있습니다

이대로는 불편하므로 각 값을 변수에 뿌리지만 여기에서 Kotlin의 편리한 기능을 이용할 수 있습니다.
val (s1, s2, s3) = readLine()!!.split(" ") // String
val (n1, n2, n3) = readLine()!!.split(" ").map(String::parseInt) // Int

변수명을 괄호로 묶어 복수 지정하는 것으로, 배열의 각 값이 차례로 대입됩니다

여러 줄에 하나


a
b
c

와 같이 줄 바꿈으로 구분 된 패턴입니다.
List 생성시에 블록을 붙이는 것으로 값의 대입을 동시에 실시할 수 있습니다
val s = List(n) { readLine() } // List<String>

val num = List(n) { readLine()!!.toInt() } // List<Int>

물론 상기에서 소개한 복수 변수에의 대입도 가능합니다
val (s1, s2, s3) = List(n) { readLine() } // String
val (n1, n2, n3) = List(n) { readLine()!!.toInt() } // Int

여러 줄에 여러


a b c
d e f
g h i

같다.
다차원 배열에 저장하는 형태로 합니다.
val s = List(n) { // List<List<String>>
  readLine()!!.split(" ")
}

val num = List(n) { // List<List<Int>>
  readLine()!!.split(" ").map(String::parseInt)
}

좋은 웹페이지 즐겨찾기