[BOJ] 1475 방번호

GirlFriend-Yerin·2020년 8월 26일
0

알고리즘

목록 보기
53/131

Note

다솜이가 플라스틱 숫자로 방 번호를 만들 때 필요한 세트의 최소 개수를 구하는 문제6과 9를 같은 문자로 취급 하면서 개수를 셀 때만 다른 문자로 취급하는게 중요한 문제숫자는 길어야 8자리 수 이다.
6이 남아 있으면 9로 대체 할 수 있고 9가 남아 있으면 6으로 대체 할 수 있다.숫자 한세트를 미리 사놓고서 사용한 걸 세어 나간다는 방식으로 생각하면 쉽게 해결된다.

알고리즘

  1. 방번호 n을 입력 반느다.
  2. 문자열 n에 대해서 숫자의 개수를 센다. 다만 6과 9에 한해서는 현재까지 카운팅 된 수 중에 작은 값의 수를 1 추가한다.
  3. 모든 수 중에서 수의 개수가 가장 높은 값을 출력해준다.

소스코드

#include <iostream>

using namespace std;

int main()
{
	short digits = {};
	char room[8] = {};
	int package = 0;
	
	cin >> room;

	for (int i = 0; i < (sizeof(room) / sizeof(char)); i++)
	{
		if (room[i] == '6' || room[i] == '9')
		{
			if (digits[6] < digits[9])
				digits[6]++;
			else
				digits[9]++;
		}
		else
			digits[room[i] - '0']++;
	}

	for (int i = 0; i < 10; i++)
		if (package < digits[i])
			package = digits[i];

	cout << package;
		
	return 0;
}

2019-01-17 10:41:07에 Tistory에서 작성되었습니다.

profile
개발할때 가장 행복한 개발자입니다.

0개의 댓글