View
알고리즘 분류: 구현
문제 링크: https://www.acmicpc.net/problem/1475
【 풀이 】
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 가 저장되어 있는 배열(세트)을 이용해 몇 개의 세트로 주어진 방 번호를 만들 수 있는지를 구하는 문제이다.
우선 각 숫자들의 등장 횟수를 세기 위한 배열을 하나 선언한다.그 후 각 숫자들을 문자로 저장, 입력받은 숫자를 반복문을 통해 검사하며 각 숫자의 등장 횟수를 센다.그런 다음 그 배열에서 최댓값을 출력해주면 끝이다.
다만 6과 9는 각 수가 세트에 존재하지 않을 때(이미 썼을 때) 바꿔 쓸 수 있기 때문에둘의 등장 횟수는 적절히 반으로 나누어 저장하면 된다.
【 코드 】
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
int cnt = 1;
char num[10] = { '0','1','2','3','4','5','6','7','8','9' };
int count[10] = { 0 }; // 각 숫자의 등장 횟수를 세는 배열
string s;
cin >> s;
for (int i = 0; i < s.size(); i++)
for (int j = 0; j < 10; j++)
if (s[i] == num[j])
count[j]++;
int sum = count[6] + count[9];
count[6] = sum / 2;
count[9] = sum - count[6];
int max = count[0];
for (int i = 0; i < 10; i++)
if (max < count[i])
max = count[i];
cout << max;
return 0;
}
728x90
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 2805번: 나무 자르기 [C++] (2) | 2023.05.06 |
---|---|
[백준] 1676번: 팩토리얼 0의 개수 [C++] (0) | 2023.05.04 |
[백준] 9506번: 약수들의 합 [C++] (2) | 2023.05.02 |
[백준] 13241번: 최소공배수 [C++] (0) | 2023.05.02 |
[백준] 11718번: 그대로 출력하기 [C++] (0) | 2023.04.30 |
reply