[BOJ/백준] 30822번 : UOSPC 세기 (Java)
📘 백준 30822번 : UOSPC 세기
💡 문제 풀이
uospc
에 동일한 문자가 없으니 입력 문자열에서 u
, o
, s
, p
, c
각각의 알파벳 등장 횟수를 센 후, 횟수의 최솟값이 uospc
를 만들 수 있는 최대의 개수.
✅ 코드 (Java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// https://www.acmicpc.net/problem/30822
// uospc에 동일한 문자가 없으니 입력 문자열의 uospc 알파벳 등장 횟수를 센 후 최솟값이 uospc의 최대 개수
public class B30822_UOSPC_세기 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine()); // 문자열 길이
char c[] = br.readLine().toCharArray(); // 입력 문자열
int cnt[] = new int[5]; // uospc 알파벳 개수 저장
for (int i = 0; i < n; i++) { // uospc 알파벳 개수 세기
switch (c[i]) {
case 'u':
cnt[0]++;
break;
case 'o':
cnt[1]++;
break;
case 's':
cnt[2]++;
break;
case 'p':
cnt[3]++;
break;
case 'c':
cnt[4]++;
break;
}
}
int min = Integer.MAX_VALUE; // uospc 알파벳 개수 최솟값
for (int i : cnt) { // 최솟값 구하기
min = Math.min(min, i);
}
System.out.println(min); // 출력
br.close();
}
}