알고리즘/BaekJoon 알고리즘
[백준 알고리즘] Q2863 이게 분수?
lkh's
2019. 1. 1. 16:54
1. Java 구현
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String[] input = br.readLine().split(" "); int a = Integer.parseInt(input[0]); int b = Integer.parseInt(input[1]); input = br.readLine().split(" "); int c = Integer.parseInt(input[0]); int d = Integer.parseInt(input[1]); double[] arr = { ((double)a / c) + ((double)b / d), ((double)c / d) + ((double)a / b), ((double)d / b) + ((double)c / a), ((double)b / a) + ((double)d / c) }; double max = 0; int index = 0; for(int i = 0; i < arr.length; i++) { if(max < arr[i]) { max = arr[i]; index = i; } } bw.write(index + "\n"); bw.close(); } }
2. 코드설명
이 문제는 간단한 문제이다. 2x2 사각형 내부의 숫자로 a / b + c / d 를 구해서 가장 큰수를 구하는 문제이다. 그리고 이 사각형을 시계방향으로 회전할 수 있다.
시계방향으로 회전을 한다는 것은 결국 경우의 수가 4가지 뿐이라는 것이다. 그래서 나는 4개의 경우의 수를 모두 구했다. 그리고 가장 큰 수의 인덱스 번호를 출력했다.
문제는 간단하다고 했는데, 코드는 지저분하다.. 어찌하면 깨끗할 수 있을까? 스위치문을 사용하면 좀더 간결하지 않을까나... 일단 맞췄으니 패스!
3. Pain Point
이런 문제만 있었으면 좋겠다... 다른 문제는 너무 어렵다... 나의 머리를 아프게 한다...