반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
네 정수 A, B, C, D가 주어집니다.
위 경우 A/C + B/D로 계산하며, 90도씩 오른쪽으로 회전하며 가장 큰 값을 찾습니다.
3. 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 입력
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
double d = sc.nextDouble();
double zero = a/c + b/d;
double one = c/d + a/b;
double two = d/b + c/a;
double three = b/a + d/c;
// 비교
if((zero >= one) && (zero >= two) && (zero >= three)) {
System.out.println(0);
}
else if((one >= zero) && (one >= two) && (one >= three)) {
System.out.println(1);
}
else if((two >= zero) && (two >= one) && (two >= three)) {
System.out.println(2);
}
else {
System.out.println(3);
}
}
}
Java의 경우, 분수 계산 시 캐스팅에 유의해야 합니다. int / int = int이므로 소수점 아래 부분이 짤립니다.
따라서, 처음부터 Double로 정수를 받아서 계산합니다.
# 입력
a, b = map(int, input().split())
c, d = map(int, input().split())
# 가장 큰 값 출력
array = [a/c+b/d, c/d+a/b, d/b+c/a, b/a+d/c]
print(array.index(max(array)))
반면 파이썬의 경우에는 캐스팅을 신경 쓸 필요가 없습니다. 가장 큰 수의 인덱스를 출력합니다.
(코드 길이의 차이가 심하긴 하네요..)
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 7891 Can you add this? - 파이썬(Python) (0) | 2022.12.07 |
---|---|
[수학/브루트포스] 백준 6131 완전 제곱수 - 파이썬(Python) (0) | 2022.12.06 |
[구현/수학] 백준 11648 지속 - 파이썬(Python) (0) | 2022.12.04 |
[구현/수학] 백준 4493 가위 바위 보? - 자바(Java) (0) | 2022.12.03 |
[구현/수학] 백준 14920 3n+1 수열 - 파이썬(Python) (0) | 2022.12.02 |
댓글