[ 문제 ] : https://www.acmicpc.net/problem/1475

 

1475번: 방 번호

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

www.acmicpc.net


[ 문제 접근 ]

 

- 입력에 해당하는 숫자에 맞게 0~9 까지 배열을 만들어 count 하는 문제.


[ 최종 코드 ]

 

#include<iostream>
#include<algorithm>

using std::cout; using std::cin;

int n;
int arr[10];

int main() {
	std::ios::sync_with_stdio(false);
	cin.tie(nullptr); cout.tie(nullptr);

	cin >> n;

	// 각 자리수 배열 크기++
	while (n) {
		arr[n % 10]++;
		n /= 10;
	}

	int max_idx = 0;
	for (int i = 0; i < 10; i++) {
		if (i == 6 || i == 9) {  // 6 이랑 9 일 때는 따로 처리
			max_idx = std::max((arr[6] + arr[9] + 1) / 2, max_idx);
			continue;
		}
		max_idx = std::max(arr[i], max_idx);
	}
	
	cout << max_idx;

	return 0;
}

[ Key Point ]

 

👉 6이랑 9일때는 서로 호환이 가능하니깐 두 값을 합쳐 반으로 나눠줘야 개수가 나온다.

 

floor, ceil (내림, 올림) 없이 2로 나웠을때 반올림 하려면 

(arr[6] + arr[9] + 1) / 2

+1을 더해주고 나누면 된다.


+ Recent posts