백준알고리즘

백준알고리즘:p1085 직사각형에서 탈출

socialcomputer 2021. 3. 31. 21:39
반응형

분류: 기본수학2

 

문제

 

코드

//백준알고리즘 제출시 클래스 이름은 Main으로 바꿔야 됨 
package math_2;

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

public class p1085 {
//직사각형 (0, 0) (w, h)  내 위치(x,y) 에서 직사각형의 경계까지 가는 최소길이는? 
//입력: x y w h
	public static void main(String[] args) {
		try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
				BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));){
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			int x = Integer.parseInt(st.nextToken());
			int y = Integer.parseInt(st.nextToken());
			int w = Integer.parseInt(st.nextToken());
			int h = Integer.parseInt(st.nextToken());
			
			int result1 = w-x < h-y ? w-x : h-y; //차가 더 적은게 답
			int result2 = x < y ? x:y; //x,y가 직사각형의 절반 이하에 있을때.
			int answer = result1 < result2 ? result1 : result2;
			
			bw.write(String.valueOf(answer));
			bw.flush();
		}catch(Exception e) {e.printStackTrace();}

	}

}

▶처음에 w-x 와 h-y중 작은 것만 답으로 했다가 틀렸다.

x,y가 w,h보다 0,0에 가까울수 있단 생각을 해야 한다.

그래서 서로 작은 것을 구한 후

구한 답 중 더 작은 것을 출력했다.


채점결과

 

링크 www.acmicpc.net/problem/1085

 

1085번: 직사각형에서 탈출

한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

반응형