본문 바로가기
스터디(beakjoon)

Kotlin] 백준 10813번 문제 풀이

by 김마리님 2023. 4. 24.

https://www.acmicpc.net/problem/10813

 

10813번: 공 바꾸기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이

www.acmicpc.net

 

 

풀이

더보기

이 문제는 배열의 기본을 알고 있어야 한다.
배열의 인덱스 무조건 0부터 시작한다. 하지만 인간이 인식하는 숫자는 1부터 시작한다. 따라서, 케이스로 받아오는 인덱스를 숫자로 파싱할때 -1을 하여 배열의 인덱스와 맞춰줘야 한다.

 

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun main(args: Array<String>) {
    question10813()
}

fun question10813() {
    var reader = BufferedReader(InputStreamReader(System.`in`))
    var writer = BufferedWriter(OutputStreamWriter(System.out))

    var basketCase = reader.readLine().split(" ").map { it.toInt() }
    var baskets = IntArray(basketCase[0]){ it + 1 }

    for (i in 0 until basketCase[1]) {
        var numbers = reader.readLine().split(" ").map { it.toInt() - 1 }

        var firstBasket = baskets[numbers[0]]
        var secondBasket = baskets[numbers[1]]

        baskets[numbers[0]] = secondBasket
        baskets[numbers[1]] = firstBasket

    }

    writer.write(baskets.joinToString(" "))
    writer.flush()

}
반응형