250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[알고리즘트레이닝] 백준알고리즘 1085번: 직사각형에서 탈출 [JAVA] 본문

[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training

[알고리즘트레이닝] 백준알고리즘 1085번: 직사각형에서 탈출 [JAVA]

Snow-ball 2021. 8. 3. 18:59
반응형

 

 

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

입력
첫째 줄에 x, y, w, h가 주어진다.

출력
첫째 줄에 문제의 정답을 출력한다.

 



 

풀이 1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.company.backjoon;
 
import java.util.Scanner;
 
public class EscapeFromRectangle {
    public static void main(String[] args) {
        // 한수는 x,y에 있다.
        // 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0,0) , 오른쪽 위 꼭짓점은 (w,h)에 있다.
        // 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성
 
        Scanner input = new Scanner(System.in);
 
        int x = input.nextInt();
        int y = input.nextInt();
        int w = input.nextInt();
        int h = input.nextInt();
 
        // Math.min()은 주어진 숫자들 중 가장 작은 값을 반환한다.
        int x_min = Math.min(x, w-x);
        int y_min = Math.min(y, h-y);
 
        System.out.println(Math.min(x_min, y_min));
    }
}
 
cs

 

풀이 2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.company.backjoon;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
 
public class EscapeFromRectangle2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        System.out.println("st : " + st);
        // StringTokenizer 클래스는 문자열을 우리가 지정한 구분자로 문자열을 쪼개주는 클래스이다.
        // 쪼개진 문자열을 토큰(Token)이라고 부른다.
 
        // Intefer.parseInt(String s) : 숫자형의 문자열을 인자 값으로 받으면 해당 값을 10진수의 Integer 형으로 반환
        // Intefer.parseInt(String s, int radix) : 숫자형의 문자열을 첫번째 인자 값으로 받고 변환할
        // 진수값을 입력하면 해당 진수에 맞춰 Intefer형으로 반환
        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 x_min = Math.min(x, w-x);
        int y_min = Math.min(y, h-y);
 
        System.out.println(Math.min(x_min, y_min));
    }
}
 
cs

 

풀이 3)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.company.backjoon;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
 
public class EscapeFromRectangle3 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        ArrayList<Integer> list = new ArrayList<Integer>();
 
        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        int w = Integer.parseInt(st.nextToken());
        int h = Integer.parseInt(st.nextToken());
 
        list.add(x);
        list.add(y);
        list.add(w-x);
        list.add(h-y);
 
        Collections.sort(list);
        System.out.println(list.get(0));
 
    }
}
 
 
cs

 

 

 

 

 

 

 

베타존 : 네이버쇼핑 스마트스토어

나를 꾸미다 - 인테리어소품 베타존

smartstore.naver.com

 

반응형
Comments