https://www.acmicpc.net/problem/3003
풀이
더보기
문제의 핵심은 >> 필요한 것 << 이 몇개인지 찾는 것이다.
즉, 원래 있어야 하는 기준 배열 - 창고에서 찾은 배열을 뺐을 때, 몇 개가 필요한지 알 수 있다.
예를 들어 있어야 하는 기준 배열이
킹 1개 퀸 1개 룩 2개 나이트 2개 비숍 2개 폰 8개
[1, 1, 2, 2, 2, 8]
창고에서 찾은 배열이
킹 1개 퀸 0개 룩 3개, 나이트 1개 비숍 4개 폰 8개라고 하자.
[1, 0, 3, 1, 4, 8]
이를 빼보면
[1, 1, 2, 2, 2, 8]
- [1, 0, 3, 1, 4, 8]
---------------------
[0, 1, -1, 1, -2, 0]
이 된다. 따라서, 기준 배열을 for 문을 돌려 같은 인덱스의 창고배열을 빼서 새 배열을 만들고, 이를 joinToString을 통해 합쳐 새 문자열로 만들러 리턴하면 된다.
fun main(args: Array<String>) {
question3003()
}
fun question3003() {
var chess = arrayListOf<Int>(1, 1, 2, 2, 2, 8)
var list = readLine()!!.split(" ").map { it.toInt() }
var part = mutableListOf<Int>()
chess.forEachIndexed { index, i ->
part.add(i - list[index])
}
println(part.joinToString(" "))
}
반응형
'스터디(beakjoon)' 카테고리의 다른 글
Kotlin] 백준 10988번 문제풀이 (0) | 2023.06.07 |
---|---|
Kotlin] 백준 25083번 문제풀이 (0) | 2023.06.02 |
Kotlin] 백준 11718번 문제풀이 (0) | 2023.06.01 |
Kotlin] 백준 5622번 문제풀이 (0) | 2023.06.01 |
Kotlin] 백준 2908번 문제풀이 (0) | 2023.05.31 |