Problem-Solving/BOJ
[BOJ/백준][Silver3] 9375 : 패션왕 신해빈 (Kotlin)
has2
2021. 7. 18. 22:31
https://www.acmicpc.net/problem/9375
9375번: 패션왕 신해빈
첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다.
www.acmicpc.net
[난이도] Silver3
[유형] Map
[풀이]
각 옷의 종류를 map<String,Int> 의 키로 하여 각 옷의 종류마다 몇개의 옷이 있는지 value로 저장합니다.
그 뒤 모든 (value+1)을 곱해준 값에서 1을 빼준 값이 정답이 됩니다.
value에 1을 더해주는 이유는 이 종류의 옷을 입지 않은 경우의 수이며
마지막에 1을 빼주는 이유는 아무 종류의 옵도 입지 않은 경우는 제외시켜야 하기 때문입니다.
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.*
fun main() = with(BufferedReader(InputStreamReader(System.`in`))){
var tc = readLine().toInt()
while(tc-->0) {
var N = readLine().toInt()
val mp = HashMap<String, Int>()
for(i in 0 until N) {
val a = readLine().split(" ")[1]
if(mp.containsKey(a)) mp[a] = 1+mp[a]!!
else mp[a] = 1
}
var ans=1
for(a in mp.values) ans*=(a+1)
println(ans-1)
}
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Silver3/9375.cpp