백준

백준 1475 방 번호 c++

2024. 3. 27. 21:40

 

 

 

처음 작성한 코드는 다음과 같다.

주어진 예제는 다 잘 돌아갔지만 틀렸다는 결과가 나왔다.

#include <iostream>
#include <cmath>
using namespace std;

int main(){
    int n;
    cin >> n;
    
    int temp;
    int num[11] = {0, };
    while(n>0){
        temp = n%10;
        n = n/10;       
        num[temp]++;
    }
    
    int max = 0;
    for(int i=1; i<=8; i++){ //9는 미리 제외
        if(i!=6){//6제외
            if(max < num[i])
                max = num[i];
        }
    }
    
    //6,9 고려해주기
    if( max < ceil((num[6]+num[9])/2) )
        max = ceil((num[6]+num[9])/2);
    
    cout << max;
    return 0;
}

 

 

 

다시 작성한 코드는 다음과 같다.

ceil함수를 사용할 때 뭔가 문제가 있었다.

그냥 1을 더해주고 /2해주는 방식으로 수정했다.

#include <iostream>
#include <cmath>
using namespace std;

int main(){
    int n;
    cin >> n;
    
    int temp;
    int num[10] = {0};
    
    while(true){
        temp = n%10;         
        num[temp]++;       
        if(n/10==0)
            break;
        n = n/10;  
    }
    
    int max = 0;
    for(int i=0; i<=8; i++){ //9는 미리 제외
        if(i!=6){//6제외
            if(max < num[i])
                max = num[i];
        }
    }
    
    //6,9 고려해주기
    if( max < (num[6]+num[9]+1)/2 )
        max = (num[6]+num[9]+1)/2;
    
    cout << max;
    return 0;
}

 

 

 

 

 

'백준' 카테고리의 다른 글

백준 2003 수들의 합 2 c++  (0) 2024.03.29
백준 13300 방 배정 c++  (0) 2024.03.28
백준 11652 카드 c++  (0) 2024.03.27
백준 3273 두 수의 합 c++  (0) 2024.03.27
백준 7795 먹을 것인가 먹힐 것인가 c++  (0) 2024.03.27