문제
https://www.acmicpc.net/problem/1475
풀이
0~9가 한 세트이다.
입력을 char배열 n에 받아서 각 자리의 수의 개수를 카운트하는 num배열에 저장한다.
대신 6이랑 9를 뒤집어서 사용해도 된다 했으므로
카운트할때 9는 6에 카운트한다.
그리고 num[6]이 짝수면 나누기 2하고 홀수면 나누기 2한 후 1을 더해서 다시 저장한다.
그리고 num배열 중에서 제일 큰 값을 출력하면 된다!
코드
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
32
|
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <algorithm>
using namespace std;
const int max_val = 1000000;
char n[max_val + 1];
int num[10];
int main() {
for (int i = 0; i < 10; i++)
num[i] = 0;
scanf("%s", &n);
for (int i = 0; i < max_val; i++) {
if (n[i] == 0) break;
if (n[i]-'0' == 9) num[6]++;
else num[n[i]-'0']++;
}
if (num[6] % 2 == 0) num[6] /= 2;
else num[6] = num[6] / 2 + 1;
int ans = 0;
for (int i = 0; i < 9; i++)
ans = max(ans, num[i]);
printf("%d\n", ans);
return 0;
}
|
cs |
https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/1475.cpp
결과
'알고리즘 문제풀이 > 알고리즘 C++ 풀이' 카테고리의 다른 글
[백준] 1076번: 저항 (C++ 풀이) (0) | 2019.02.08 |
---|---|
[백준] 2346번: 풍선 터뜨리기 (C++ 풀이) (0) | 2019.02.08 |
[백준] 1926번: 그림 (C++ 풀이) (0) | 2019.02.04 |
[백준] 15663번: N과 M(9) (C++ 풀이) (0) | 2019.02.03 |
[백준] 15657번: N과 M (8) (C++ 풀이) (0) | 2019.02.03 |