Post

[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();
	}
}


💾 제출 결과


보러 가기