티스토리 뷰


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

 이런 문제만 있었으면 좋겠다... 다른 문제는 너무 어렵다... 나의 머리를 아프게 한다...


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함