티스토리 뷰

백준/실버

[백준 1105번] 팔 (C++)

게임개발기원 2025. 4. 20. 04:24

문제링크 : https://www.acmicpc.net/problem/1105

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

string L, R;

int main() 
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> L >> R;
    if(L.size()!=R.size())
    {
        cout << 0;
        return 0;
    }

    int cnt = 0;
    for (int i = 0; i < L.size(); i++) 
    {
        if (L[i] != R[i]) break;
        if (L[i] == '8') cnt++;
    }

    cout << cnt;


    return 0;
}

 

먼저 입력을 문자열을 통해 비교가 용이하도록 해준다.

만약 두 문자열의 길이가 다르다면 8의 개수가 없는 수가 무조건 발생할 수밖에 없다.

따라서 이 경우 바로 0을 출력하고 종료한다.

 

이후로는 L 문자열 사이즈만큼 현재 문자를 비교한다.

L에서 8이 존재하면 카운팅하지만, 만약 R과 다르다면 바로 종료한다.

L~R 범위내에 8이 가장 적게 들어있는 수를 찾는 것인데, 현재 위치가 둘 다 8이 아니라면 무조건 8이 필요없는 다른 수를 사용할 수 있다는 것이다.

따라서 L문자열 길이만큼 각 문자를 모두 체크하며 다른 경우 바로 종료하고, 둘 다 8로 같은 경우만 카운팅해주면 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
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
글 보관함