안드로이드 <Kotlin>

[Kotlin] 알고리즘 풀이를 위한 코틀린 코드 템플릿

TaeGyeong Lee 2023. 8. 23. 20:26

참고용입니다.

 

입력 받는 코드

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)

 

참고 자료

 

코틀린으로 알고리즘 풀 때 기본 팁

백준 사이트에서 코틀린으로 문제를 풀기 시작했는데, 스물 다섯 문제를 풀면서 느꼈던 기본적인 중요한 것들을 적었다. 알고리즘을 '알'자도 모르는 수준이며 기본적인 문제들만 풀어봤다. 1.

wonnyhouse.tistory.com