매일 조금씩

[C++] 백준 1475번 : 방 번호 본문

알고리즘

[C++] 백준 1475번 : 방 번호

mezo 2019. 11. 19. 00:55
728x90
반응형

 

 

 

 

 

단순히 생각해야 풀리는 문제이다.

세트의 갯수를 알아야하는데 고려해야하는 건 6과 9의 갯수 이다.

 

가장먼저 생각난 것을 크기가 10인 배열을 사용하여 입력된 숫자를 인덱스로 하는 배열을 +1 시키는 것이다.

 

1. 크기가 10인 배열을 0으로 초기화 시킨후 입력받은 숫자의 각자리 수를 인덱스로 하는 배열을  +1 시킨다.

2. 6과 9가 아닌 다른 숫자들의 갯수중 최댓값을 세트의 수에 넣는다.

3. {(6과 9의 갯수) + 1} / 2 와 2의 수를 비교한 최댓값을 세트의 수에 넣는다.

*** 복잡하게 생각할것 없이 6과 9의 갯수를 합친후  그 값이 홀수인 경우를 위하여 +1하고 2로 나눈다.

 

 

 

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main(void){
	string str;
	   
	cin >> str;
	
	int arr[10] = { 0 };  
	
	for (int i = 0; i <= str.size(); i++) {
		arr[str[i] - '0']++;
	}

	int num = 0;
	for (int i = 0; i < 10; i++) {
		if (i != 9 && i != 6) num = max(num, arr[i]);

	}

	cout << max(num, (arr[6] + arr[9] + 1) / 2); 
	// + 1을 하는이유 :  둘의 갯수 합이 홀수일때를 고려하기 위함.

	return 0;
}
728x90
반응형