문제 풀이/백준

[백준] 1105번. 팔(JAVA)

27200 2025. 1. 25. 20:16

문제

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


풀이(13분)

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        String l = st.nextToken();
        String r = st.nextToken();

        // L과 R의 자릿수가 다르면 바로 0 출력
        if (l.length() != r.length()) {
            System.out.println(0);
            return;
        }

        int count = 0;

        // L과 R의 자릿수를 비교
        for (int i = 0; i < l.length(); i++) {
            // L과 R의 현재 자리가 다르면 더 이상 탐색 불필요
            if (l.charAt(i) != r.charAt(i)) {
                break;
            }

            // 동일한 자리의 숫자가 '8'이면 카운트 증가
            if (l.charAt(i) == '8') {
                count++;
            }
        }

        System.out.println(count);
    }
}

 

해결 방식은 단순하다.

일단 두 수의 길이가 다르다면 반드시 8이 없이 결과를 도출할 수 있으므로 0을 리턴한다.

 

길이가 같다면 자릿수마다 다음과 같은 비교를 진행한다.

1. 현재 자릿수가 다르다면 이후로는 8이 없어도 가능하다.

2. 현재 자릿수가 같다면 8인지 아닌지를 확인한다.