[백준] 공 (1547)
문제 설명
입력 및 출력
» 입력
- 첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것을 의미한다. X와 Y의 값은 3보다 작거나 같고, X와 Y가 같을 수도 있다. 컵을 이동시킨 후에 공이 컵 바깥에 있는 경우는 없다.
» 출력
첫째 줄에 공이 들어있는 컵의 번호를 출력한다. 공이 사라져서 컵 밑에 없는 경우에는 -1을 출력한다.
예제 입출력
입력 | 출력 |
---|---|
4 3 1 2 3 3 1 3 2 |
3 |
문제 풀이 (KOTLIN)
import java.util.Scanner
fun main(args: Array<String>) = with(Scanner(System.`in`)){
val map = mutableMapOf<Int, Boolean>()
map[1] = true
map[2] = false
map[3] = false
repeat(nextInt()) {
val swap1 = nextInt()
val swap2 = nextInt()
if (map[swap1] == true) {
map[swap1] = false
map[swap2] = true
} else if (map[swap2] == true){
map[swap1] = true
map[swap2] = false
}
}
map.forEach { (t, u) -> if (u) println(t) }
}
문제 풀이 (SWIFT)
var ball = 1
for _ in 0..<Int(readLine()!)! {
let swap = readLine()!
.split(separator: " ")
.map { Int($0)! }
.filter { $0 != ball }
if swap.count == 1 {
ball = swap[0]
}
}
print(ball)