본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:9,기본수학2,JAVA)1085번, 직사각형에서 탈출

by 열정적인 이찬형 2022. 1. 4.

문제 링크


주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

  • 직사각형 탈출하는 함수 squreEscape를 만들었습니다.
  • BufferedReader를 사용하여 입력 값을 받았습니다.
  • x값/y값/사각형x값,사각형y값StringTokenizer를 이용하여 띄어쓰기 기준으로 초기화하였습니다.
  • Math.min을 사용하여 x,y값이 좌표축으로 가는 (x,0) , (0,y) 거리와 좌표축이 아닌 경계면으로 가는 거리중 최소의 거리를 구하였습니다.
  • 결과 bw에 저장하였습니다.
  • BufferedWriter를 통해 저장된 결과를 출력하였습니다.

결과 코드

import java.io.*;
import java.util.*;
public class Main{
    public static void main(String[] args) throws IOException{
        squreEscape();	//함수 호출
    }
    public static void squreEscape() throws IOException {	//직사각형 탈출 함수
    	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        //입력 값을 받는 BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //결과를 출력하는 BufferedWriter
        StringTokenizer st = new StringTokenizer(br.readLine()," ");	//띄어쓰기 기준 나누기
        int x = Integer.parseInt(st.nextToken());	//x값
        int y = Integer.parseInt(st.nextToken());	//y값
        int width = Integer.parseInt(st.nextToken());	//사각형 x값
        int height = Integer.parseInt(st.nextToken());	//사각형 y값
        int minWidth = Math.min(Math.min(x, y),Math.min(width-x, height-y));	//가장작은 거리 비교
        bw.write(minWidth + "\n");	//결과 bw에 저장
        bw.flush();		//결과 출력
        bw.close();
        br.close();
    }
}

댓글