View

반응형

 

알고리즘 분류: 구현

문제 링크: https://www.acmicpc.net/problem/1475

 

1475번: 방 번호

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

 

풀이 】

 

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
반응형
Share Link
reply
250x250
반응형
«   2024/10   »
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