[백준/BOJ]11034. 캥거루 세마리2(java) [Bronze3]

jychan99·2021년 8월 24일
0
post-thumbnail
  1. 캥거루 세마리2

캥거루 세 마리가 사막에서 놀고 있다. 사막에는 수직선이 하나 있고, 캥거루는 서로 다른 한 좌표 위에 있다.
한 번 움직일 때, 바깥쪽의 두 캥거루 중 한 마리가 다른 두 캥거루 사이의 정수 좌표로 점프한다. 한 좌표 위에 있는 캥거루가 두 마리 이상일 수는 없다.
캥거루는 최대 몇 번 움직일 수 있을까?

입력
여러개의 테스트 케이스로 이루어져 있으며, 세 캥거루의 초기 위치 A, B, C가 주어진다. (0 < A < B < C < 100)

출력
각 테스트에 대해 캥거루가 최대 몇 번 움직일 수 있는지 출력한다.


2965번의 캥거루 세마리와 같은문제다.
그러나 출력방법에서 '각 테스트에 대해..'라는 문구떄문인데,
몇회 반복을 할지 입력을 안받기 때문에 어떻게 반복을 해야할지 모르겠다.
질문에 들어가보니 EOF(end of file)등을 쓰던데... 아직 거기까진 실력이 모자란것 같다.
풀다가 실패한 문제들은 따로빼서 나중에 오답노트하듯이 풀어보겠다.


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

    public static void main(String args[]) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String S;
        int A,B,C;
        int result;

        while((S = br.readLine()) != null){
            StringTokenizer st = new StringTokenizer(S);
            A = Integer.parseInt(st.nextToken());
            B = Integer.parseInt(st.nextToken());
            C = Integer.parseInt(st.nextToken());

            if(B-A <= C-B){
                result = C-B-1;
            }else{
                result = B-A-1;
            }

           System.out.println(result);
        }
    }
}

자바로 다시풀어봤다.
자바는 scanner로 입력받는거보다 BufferReader로 입력받는것이 더 빠르다고해서
br로 받았고, StringToeknizer는 공백을 기준으로 문자열을 구분해주었다.

테스트케이스가 정해진것이 없어서 while문 조건에 null이 입력될때 까지 반복하도록 했다.

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글