일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알고리즘공부
- algorithmStudy
- 투자
- 서평
- Java
- 자바
- 화장품
- 책을알려주는남자
- C++
- 알고리즘 공부
- 주식
- 프로그래밍언어
- 자바스크립트
- 백준알고리즘
- 알고리즘트레이닝
- 다독
- 경제
- 돈
- C
- 지혜를가진흑곰
- 독서
- 성분
- 채권
- JavaScript
- 독후감
- 프로그래머스 알고리즘 공부
- 책알남
- 재테크
- algorithmtraining
- algorithmTest
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
[알고리즘트레이닝] 백준알고리즘 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 |
반응형
'[Snow-ball]프로그래밍(컴퓨터) > Algorithm Training' 카테고리의 다른 글
[백준알고리즘] 10870번 재귀방식 피보나치 수 5 문제풀이 [JAVA, JAVASCRIPT, C] (0) | 2022.01.18 |
---|---|
[백준알고리즘] 10872번 팩토리얼 문제풀이 [JAVA, C] (0) | 2022.01.17 |
[알고리즘 트레이닝] 백준 알고리즘 1316번: 그룹 단어 체커 [JAVA] (0) | 2021.07.06 |
[알고리즘트레이닝] 백준 알고리즘 14681번 : 사분면 고르기 [JAVA] (0) | 2021.07.02 |
[알고리즘트레이닝] 육각 주사위 2개의 합이 5 출력하기 (1,4/2,3/3,2/4,1) [JAVA] (0) | 2021.07.01 |
Comments