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;
}
'코딩테스트 > C++' 카테고리의 다른 글
[ 백준 BOJ ] 1132번 - 합 (C++) (0) | 2025.05.05 |
---|---|
[ 백준 BOJ ] 1106번 - 호텔 (C++) (0) | 2025.04.28 |
[ 백준 BOJ ] 1101번 - 카드 정리 1 (C++) (0) | 2025.04.24 |
[ 백준 BOJ ] 1099번 - 알 수 없는 문장 (C++) (0) | 2025.04.23 |
[ 백준 BOJ ] 1092번 - 배 (C++) (0) | 2025.04.21 |