HI-ARC
https://www.acmicpc.net/problem/26004
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 607 | 476 | 409 | 79.883% |
문제
당신은 𝐇𝐈-𝐀𝐑𝐂의 열렬한 팬이다.
따라서 위의 이모지를 만들고 싶어 한다.
현재 N길이의 문자열 S를 가지고 있다.
이모지를 하나 만들기 위해선 𝐇 𝐈 𝐀 𝐑 𝐂 각 문자가 하나씩 필요하다.
이모지를 최대 몇 개 만들 수 있는지 구해보자.
입력
첫째 줄에 문자열 S의 길이 정수 N이 주어진다. (1 ≤ N ≤ 100,000)
둘째 줄에 문자열 S가 주어진다.
문자열 S의 모든 문자는 영어 대문자이다.
출력
첫째 줄에 주어진 문자열 S로 만들 수 있는 이모지의 최대 개수를 출력한다.
예제 입력 1
12 HIARCCRAIHAS
예제 출력 1
2
𝐇가 2개 𝐈가 2개 𝐀가 3개 𝐑이 2개 𝐂가 2개로 𝐇𝐈-𝐀𝐑𝐂 이모지를 2개 만들 수 있다.
예제 입력 2
4 HIAR
예제 출력 2
0
𝐂가 존재하지 않아 𝐇𝐈-𝐀𝐑𝐂를 만들 수 없다.
예제 입력 3
5 HIARC
예제 출력 3
1
출처
University > 홍익대학교 > 2022 홍익대학교 HI-ARC 프로그래밍 경진대회 A번
알고리즘 분류
문자의 최소 개수가 답인 간단한 문제였다.
최소 개수를 구하는 방법만 생각해내면 막히는 부분은 없었다.
DP 문제로 머리가 안 돌아가서 가볍게 풀어본 문제
통과된 코드
#include <iostream>
using namespace std;
// 0 = H, 1 = I, 2 = A, 3 = R, 4 = C
int arr[5];
int main()
{
int N = 0;
char tempC;
cin >> N;
while (N-- > 0) {
cin >> tempC;
switch (tempC)
{
case 'H':
arr[0]++;
break;
case 'I':
arr[1]++;
break;
case 'A':
arr[2]++;
break;
case 'R':
arr[3]++;
break;
case 'C':
arr[4]++;
break;
}
}
int temp = INT32_MAX;
for (int i = 0; i < 5; i++) { // 가장 작은 값 찾기
if (temp > arr[i]) {
temp = arr[i];
}
}
cout << temp;
return 0;
}


![백준 5524번 (입실 관리, C++) [BAEKJOON]](https://lycos7560.com/wp-content/uploads/boj-og.png)
![백준 10809번 (알파벳 찾기, C++) [BAEKJOON]](https://lycos7560.com/wp-content/uploads/2022/10/boj-og-1-2048x1070-1-1024x535.png)