Uknow's Lab.
article thumbnail

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

 

1547번: 공

첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것

www.acmicpc.net

 

난이도 : 브론즈 3
태그 : 구현, 시뮬레이션

 

 

설명

3개의 컵을 섞어, 공의 최종 위치를 찾는 문제입니다.

 

첫째 줄에 공이 들어있는 컵의 번호를 출력한다. 공이 사라져서 컵 밑에 없는 경우에는 -1을 출력한다.

이 문장때문에, 공이 사라지는 경우가 있나? 싶었지만,

-1을 출력하는 코드가 없어도 잘 작동하는 걸 보니

그냥 장난삼아 넣은 문구인 것 같네요.

 

 

 

소스코드

fun main() = with(System.`in`.bufferedReader()) {
    val cup = BooleanArray(3)
    cup[0] = true

    repeat(readLine().toInt()) {
        val (a, b) = readLine().split(" ").map { it.toInt() - 1 }
        val temp = cup[a]
        cup[a] = cup[b]
        cup[b] = temp
    }

    println(cup.indexOf(true) + 1)
}

 

공이 든 컵은 true, 공이 없는 컵은 false로 설정했습니다.

0번째 컵을 true로 만든 뒤,

a, b를 서로 뒤바꿉니다.

이후, true인 컵의 위치를 찾아 출력합니다.

 

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.