https://www.acmicpc.net/problem/1105

 

생각 흐름

  • 자리 수가 다르면 8이 있는 수가 무조건 없을 수 있다. 왜냐하면 더 큰 자리 수 중에서 가장 작은 수는 무조건 100..00 형태이기 때문이다.
  • L과 R의 자리 수 i에 대해 같지 않으면 8이 들어있는 수가 없다. 왜냐하면 x99..99 형태로 하거나 x00..00 형태로 만들 수 있기 때문이다. ( x는 8이 아닌 수)
  • L과 R의 자리 수 i에 대해 같은 경우는 다음과 같이 분기한다.
    • 만약 수가 8인 경우는 +1 해줘야 한다.
    • 8이 아니면 아무 작업을 하지 않고 다음 자리 수를 탐색한다.
#include <iostream>

using namespace std;

string L, R;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    
    cin>>L>>R;
    
    if(L.size() != R.size()){
        cout<<0<<endl;
        
        return 0;
    }
    
    int answer = 0;
     
    for(int i = 0; i<L.size(); i++){
        if(L[i] != R[i]){
            break;
        }
        if(L[i] == '8'){
            answer++;
        }
    }
    
    cout<<answer<<endl;
    
    return 0;
}

+ Recent posts