참고용입니다.
입력 받는 코드
BufferedReader를 사용해야 합니다. (미사용시 시간 초과 가능성)
import java.io.*
val b = BufferedReader(InputStreamReader(System.`in`))
// 한 줄 (readln은 readLine과 다르게 null을 허용하지 않음)
val T:String = b.readLine()
// 한 줄, 그러나 문자열이 아닐 때
val T:Int = b.readLine().toInt()
// 한 줄, 한번에 리스트에 담아야 하는 경우
var lst:List<String> = listOf()
lst = b.readLine().split(' ')
// 한 줄에 정수 3개를 띄워쓰기 기준으로 입력받을 때
val (a:Int, b:Int, c:Int) = readln().split(' ').map { it.toInt() }
2차원 배열 코드
코틀린 array는 val 키워드로 선언하더라도 멤버의 값은 수정 가능
val ROWS:Int = 3
val COLS:Int = 4
/* 배열 생성
0 0 0 0
0 0 0 0
0 0 0 0
*/
val array2D = Array(ROWS) { IntArray(COLS) }
/* 배열 값 수정
0 0 0 0
0 0 0 0
0 5 0 0
*/
array2D[2][1] = 5
// 배열 순회
for(row in array2D){
for(col in row){
// ...
}
}
자료구조
아래 방식을 조합하여 양방향 pop, push가 가능한 deque 또한 구현 가능
[ ArrayList를 queue처럼 사용하기 ]
val queue:ArrayList<Int> = arrayListOf<Int>()
// push
queue.add(1)
queue.add(2)
// pop
queue.removeAt(0)
[ ArrayList를 stack처럼 사용하기 ]
val stack:ArrayList<Int> = arrayListOf<Int>()
// push
stack.add(1)
stack.add(2)
// pop
stack.removeLast()
[ MutableMap로 Map 사용하기 ]
MutableMap을 사용하여 Map 자료구조 구현(key와 value 값의 쌍으로 이루어진 집합)
val map:MutableMap<Int, String> = mutableMapOf()
// put
map[1] = "Hello"
map[2] = "World"
// get
println(map[2]) // World
// remove
map.remove(1)
참고 자료
'프로그래밍 > 안드로이드 <Kotlin>' 카테고리의 다른 글
[android] xmlns android, app 이해 (2) | 2023.11.22 |
---|---|
[Gradle] unexpected element <property> found in <manifest><application> 문제 해결하기 (0) | 2023.09.17 |
[Kotlin] 코틀린 제네릭(Generics)의 기본 (0) | 2023.07.05 |
[android] gradle 스크립트 파일에 대한 모든 이해 (0) | 2023.06.24 |
[Kotlin] 코틀린 Array 자료형 (0) | 2023.05.28 |