30822번: UOSPC 세기백준/문제2024. 8. 26. 13:50
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/30822
언어 : Kotlin
문제 설명 :
배봉산에 살고 있는 여우는 문자열을 가지고 노는 것을 좋아한다. 여우는 특히 그중에서도 'uospc'라는 모양을 가장 좋아한다!
여우는 자신이 가진 문자열의 순서를 재배열하여 'uospc' 모양을 최대한 많이 만들려고 한다. 예를 들어 'suspicion'이라는 문자열을 재배열하면 'uospcsiin'라는 문자열을 얻을 수 있고. 'processyourpurchase'라는 문자열을 재배열하면 'uospcuospcreyrrhase'라는 문자열을 얻을 수 있다.
알파벳 소문자로만 이루어진 임의의 문자열 S가 주어졌을 때. 똑똑한 여우가 이 문자열을 적절히 재배열하여 얻을 수 있는 'uospc'의 최대 개수를 구하여라.
입력 :
첫 번째 줄에 문자열의 길이인 정수 n이 주어진다. (1 ≤ n ≤ 1,000)
두 번째 줄에 영어 알파벳 소문자로만 구성되고 길이가 n인 문자열 S가 주어진다.
출력 :
문자열 S의 원소들을 적절히 재배열하여 만들 수 있는 'uospc'의 최대 개수를 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 1024MB
입출력 예 :
입력 | 출력 |
9 suspicion |
1 |
19 processyourpurchase |
2 |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = readLine().toInt()
val s = readLine()
val charCount = mutableMapOf<Char, Int>().withDefault { 0 }
for (char in s) {
if (char in "uospc") {
charCount[char] = charCount.getValue(char) + 1
}
}
val minCount = listOf('u', 'o', 's', 'p', 'c').minOf { charCount.getValue(it) }
bw.write("$minCount")
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
4072번: Words (0) | 2024.08.26 |
---|---|
31562번: 전주 듣고 노래 맞히기 (4) | 2024.08.26 |
13264번: 접미사 배열 2 (0) | 2024.08.23 |
32132번: PlayStation이 아니에요 (0) | 2024.08.23 |
200973번: Uddered but not Herd (0) | 2024.08.22 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!