문제 풀이/기타
[백준] 10816 (숫자 카드 2)
interfacer_han
2024. 2. 6. 11:26
#1 코드 - 코틀린
import java.lang.StringBuilder
fun main() {
// Initiation
val n = readln().toInt()
val cardNumberInputs = readln().split(" ")
val cardNumbers = Array(n) {0}
for(i: Int in 0..<n) {
cardNumbers[i] = cardNumberInputs[i].toInt()
}
val m = readln().toInt()
val targetCardNumberInputs = readln().split(" ")
val targetCardNumbers = Array(m) {0}
for(i: Int in 0..<m) {
targetCardNumbers[i] = targetCardNumberInputs[i].toInt()
}
// Make Map
val cardCountMap = HashMap<Int, Int>()
for(cardNumber in cardNumbers) {
if(cardCountMap[cardNumber] == null) {
cardCountMap[cardNumber] = 1
} else {
cardCountMap[cardNumber] = cardCountMap[cardNumber]!! + 1
}
}
// Make output
val output = StringBuilder()
for(i: Int in 0..<m) {
if(cardCountMap[targetCardNumbers[i]] == null) {
output.append("0 ")
} else {
output.append("${cardCountMap[targetCardNumbers[i]]} ")
}
}
println(output)
}
Map<Int, Int>형 변수 cardCountMap을 선언하고, 어떤 수(Int)가 몇 개(Int) 들어가는지를 해당 Map에 저장해나간다.