자바로 백준 1105 풀기

hong030·2023년 9월 13일
0

풀이)
주어진 범위 안에서 8이 가장 적게 나올 때를 찾아야 한다.

800 ->899 (8 하나가 백의 자리로 무조건 들어감)
800 ->900 (900, 8이 안 들어가도 되는 수 있음)
80000 -> 89999 (8 무조건 들어가야 함)
80000 -> 81234312312 (8 안 들어가도 되는 수가 있음.)

  1. 시작하는 수와 끝 수의 자릿수가 다르면 8이 안 들어가도 되는 수가 무조건 존재함.
  2. 시작하는 수와 끝 수의 자릿수는 같으나 큰 수의 자릿수부터 비교하였을 때 다르면 8이 안 들어가도 되는 수가 존재함.

내 코드)

mport java.io.*;
import java.math.*;
import java.util.*;

public class Main {

	/*
 	1105 problem 팔(8)
	*/

	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		String strLeft = st.nextToken();
		String strRight = st.nextToken();
		int count = 0;
		
		if(strLeft.length() == strRight.length()) {
			for(int i=0; i<strLeft.length(); i++) {
				if(strLeft.charAt(i) != strRight.charAt(i)) {
					break;
				}
				else {
					if(strLeft.charAt(i) == '8') {
						count++;
					}
				}
			}
		}
		System.out.println(count);
		bw.close();
	}
}
profile
자바 주력, 프론트 공부 중인 초보 개발자. / https://github.com/hongjaewonP

0개의 댓글