반응형
백준 20291번 문제입니다. (solved.ac) 기준 실버 3 문제입니다.
https://www.acmicpc.net/problem/20291
문제
문제 접근
Key, Value 쌍으로 값을 저장하는 Map 자료구조, 그중에서 읽기와 쓰기를 같이할 수 있는 MutableMap을 사용하였습니다. 키는 확장자 명을 저장할 것 이기 때문에 String, 값은 해당 확장자가 입력된 횟수를 저장할 것이기 때문에 Int를 사용하였습니다.
입력은 sbrus.txt와 같이 주어지는데 문제에서 요구하는 것은 확장자만 필요하기 때문에 .을 기준으로 나눈 후 확장자인 뒷부분만(readln().split(".")[1]) 사용합니다.
Map 자료구조의 containsKey()함수를 사용하여 입력받은 확장자가 key값으로 존재하는지 확인한 후 존재한다면 해당 키의 값을 +1 증가시켜주고 그렇지 않다면 해당 확장자명을 key로 새롭게 MutableMap에 1이라는 value와 넣어주었습니다.
마지막으로 출력 형식에 맞도록 사전순으로 정렬 후 forEach문을 사용하여 출력하였습니다.
정답 코드
fun main(){
val extentionList = mutableMapOf<String, Int>()
repeat(readln().toInt()){
val extension = readln().split(".")[1]
if (extentionList.containsKey(extension)){
extentionList[extension] = extentionList[extension]!! + 1
} else {
extentionList.put(extension, 1)
}
}
extentionList.toSortedMap().forEach{
println("${it.key} ${it.value}")
}
}
반응형
'알고리즘 문제풀이[Algorithm]' 카테고리의 다른 글
[백준] 2910번 빈도 정렬[Kotlin - 코틀린] (0) | 2022.05.31 |
---|---|
[백준] 11478번 서로 다른 문자열의 개수(Set - MutableSet)[Kotlin - 코틀린] (0) | 2022.05.30 |
[백준] 17390번 이건 꼭 풀어야 해!(누적합 - prefix sum)[Kotlin - 코틀린] (0) | 2022.05.23 |
[백준] 11399번 ATM(정렬 - 선택 정렬)[Kotlin - 코틀린] (0) | 2022.05.21 |
[백준] 17478번 재귀함수가 뭔가요?[Kotlin - 코틀린] (0) | 2022.05.19 |
최근댓글