문제 https://www.acmicpc.net/problem/1475
풀이
입력받은 수의 한 자리씩 살펴보기 위해 %10 연산을 하며 각 자릿수를 배열에 저장한다.
이때 9와 6은 동일하다고 본다. 따라서 입력 받은 수의 모든 자릿수를 확인한 후에 6의 개수는 2로 나누어준다.
마지막으로 for 문을 돌면서 count 된 수 중 가장 큰 수를 변수에 저장해서 출력한다.
코드
#include <iostream>
using namespace std;
int max(int a, int b)
{
return (a>=b)?a:b;
}
int n;
int cnt[9];
int main()
{
cin>>n;
while(n>0)
{
int x=n%10;
n=n/10;
if(x==9) cnt[6]++;
else cnt[x]++;
}
cnt[6]=(cnt[6]+1)/2;
int mcnt=0;
for(int i=0; i<9; i++) mcnt=max(mcnt,cnt[i]);
cout<<mcnt;
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
백준 1213 - 팰린드롬 만들기(C++) (0) | 2022.06.02 |
---|---|
백준 4673 - 셀프 넘버 (0) | 2022.03.29 |
백준 13015 - 별 찍기 - 23(C++) (0) | 2022.03.22 |
백준 1929 - 소수 구하기(C++) (0) | 2022.03.21 |
백준 1927 - 최소 힙 (0) | 2022.03.20 |