본문 바로가기
알고리즘/구현

백준 1475번 : 방 번호

by Jason95 2021. 1. 1.

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

내 풀이(2021.1.1.) :

#include <iostream>

using namespace std;

int n[10];

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	string N; cin >> N;
	for (int i = 0; i < N.size(); i++) {
		if (N[i] == '6' || N[i] == '9') {
			n[6]++; n[9]++;
		}
		else {
			n[N[i] - '0']++;
		}
	}
	
	/*
	for (int i = 0; i < 10; i++) {
		cout << i << " ";
	}
	cout << endl;

	for (int i = 0; i < 10; i++) {
		cout << n[i] << " ";
	}
	cout << endl;
	*/

	n[6] += 1; n[6] /= 2;
	n[9] += 1; n[9] /= 2;

	int max = 0;
	for (int i = 0; i < 10; i++) {
		if (max < n[i]) max = n[i];
	}

	cout << max;

	return 0;
}

3번만에 맞췄다.

1번째 시도에서 한 실수는, 숫자를 카운트하는 배열의 타입을 int로 해야 하는데 char로 해버렸고

2번째 시도에서 한 실수는, 6이나 9를 후처리할 때 +1를 하고 /2를 해야 하는데 /2만 해버렸다.

 

앞으로는

주석 처리 된 부분처럼 일일이 출력하지 않고도, 한 번에 맞출 수 있는 수준이 되어야 겠다.