728x90
문제
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
sc.close();
// 1. 만약 모든 변수가 다르면
int max = 0;
if (a != b && b != c && a != c) {
// 만약 a > b 라면
if (a > b) {
// c > a > b 일때
if (c > a) {
max = c;
} else {
max = a;
}
} else {
// c > b > a 일때
if (c > b) {
max = c;
} // b > (a, c)
else {
max = b;
}
}
System.out.println(max * 100);
}
// 2. 적어도 한 쌍 이상의 서로 같은 변수가 존재할 경우
else {
// 모든 변수가 같은 경우
if (a == b && a == c) {
System.out.println(10000 + a * 1000);
} else {
// a가 b 혹은 c랑만 같은 경우
if (a == b || a == c) {
System.out.println(1000 + a * 100);
}
// b가 c랑 같은 경우
else {
System.out.println(1000 + b * 100);
}
}
}
}
}
3개의 변수가 모두 다른지, 아닌지를 판단하는 것이 중요하다
만약, 모두 다른게 아니라면 적어도 하나 이상의 같은 변수가 존재한다.
1. 3개의 변수가 모두 다를 때는 하나 조건이 더 걸린다. 여기서 큰 수를 찾아야 했다.
가장 원시적인 방법으로 풀었고 3개의 변수중에서 큰 값을 담기 위해 max로 변수를 하나 생성해 주었다.
물론 Java에서 제공하고 있는 Math.max 함수를 활용하여 큰 수가 무엇인지를 알 수도 있다.
2. 적어도 하나 이상일 경우면 모두 같을 경우도 포함이다
2-1) 모두 같을 때 논리연산자 &&를 사용해서 풀었다
2-2) 하나 이상 같을경우 논리연산자 ||와 조건문을 하나 더 썼다.
출처
https://www.acmicpc.net/problem/2480
2480번: 주사위 세개
1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개
www.acmicpc.net
'Algorithm' 카테고리의 다른 글
[백준] 3. 반복문 - 10950. A+B - 3 (Java11) (0) | 2023.01.21 |
---|---|
[백준] 3. 반복문 - 2739. 구구단 (Java11) (0) | 2023.01.21 |
[백준] 2. 조건문 - 2525. 오븐 시계 (Java11) (0) | 2023.01.20 |
[백준] 2. 조건문 - 2884. 알람 시계 (Java11) (0) | 2023.01.20 |
[백준] 2. 조건문 - 14681. 사분면 고르기 (Java11) (0) | 2023.01.20 |