728x90
문제
: 시작점 = 0, 0
: 현재지점 = X, Y
: 끝점 = W, H
: 가장 가까운 직사각형 변까지 가는 직선거리 구하기
문제 링크 : https://www.acmicpc.net/problem/1085
원리
: X부터 0까지 가는 거리와 W까지 가는 거리 중 더 짧은 쪽 구하기
: Y부터 0까지 가는 거리와 H까지 가는 거리 중 더 짧은 쪽 구하기
: 둘 중 더 짧은 거리 선택
풀이방법
1) X가 W의 절반보다 클 경우, W로 가는게 더 가깝다. 이 때는 W - X 만큼 가면 됨
2) 작거나 같을 경우는 0으로 가는게 더 가깝다. 이 때는 X만큼 가면 됨
3) Y가 H의 절반보다 클 경우, H로 가는게 더 가깝다. 이 때는 H - Y 만큼 가면 됨
4) 작거나 같을 경우는 0으로 가는게 더 가깝다. 이 때는 Y만큼 가면 됨
5) 둘 중 더 짧은 거리를 출력한다.
나의 코드
import java.io.*;
import java.util.Objects;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
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 move1 = (W/2>=X) ? X : W - X;
int move2 = (H/2>=Y) ? Y : H - Y;
int result = move1<=move2 ? move1 : move2;
System.out.println(result);
}
}
728x90
'알고리즘 저장소 (일반방식과 나만의 풀이) > JAVA' 카테고리의 다른 글
| [백준] no1181: 단어정렬 (0) | 2023.01.07 |
|---|---|
| [백준] no10773: 제로 (0) | 2023.01.06 |
| [백준] no1944: 프린터 큐 (0) | 2023.01.05 |
| [백준] no11866: 요세푸스 수열 (0) | 2023.01.05 |
| [백준] no2869: 달팽이는 올라가고 싶다 (0) | 2023.01.04 |