2480 - 주사위 세개알고리즘/백준2023. 8. 15. 12:35
Table of Contents
1. 배경지식
Math.max()메서드를 이용하면 숏코딩을 할 수 있다.
2. 문제해결
-주사위의 눈 3개가 모두 같을 때
-주사위의 눈 2개만 같을 때
-주사위의 눈이 모두 다를 때
3. 구현력
-주사위의 눈이 모두 다른경우
if(a != b && a != c && b != c)
주사위의 눈이 모두 다를때는 그 중 가장 큰값 X 100원의 상금을 받게되므로,
주사위의 눈 중 가장 큰 값을 찾아야한다.
int max;
if(a > b){
if(c > a){
max = c;
}
else{
max = a;
}
} //a > b finish
// b > a
else{
// c > b > a
if(c > b){
max = c;
}
//b > (a,c)
else{
max = b;
}
}
-주사위의 눈이 2개만 같을 경우
가장먼저 같은 변수를 찾아야한다.
a를 기준으로 b가 같거나, c가 같은 경우를 판단한다.
즉, a == b || a == c일 경우이다.
위 식을 만족하면 a는 같은 수임이 증명되고 위 식을 만족하지 않으면 b == c인 경우가 된다.
// 주사위의 눈이 두개가 같을경우
else{
if(a == b && a == c) {
}
else{
//a가 b혹은 c랑 같은 경우
if(a == b || a == c){
}
//b가 c랑 같은 경우
else{
}
}
}
✏️전체코드
package boj;
import java.util.Scanner;
public class b2480 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
//모든변수가 다른경우
if(a != b && b != c && a != c) { //이 부분은 Math.max를 통해 더 간략히할수있음.
int max;
if(a>b) {
//c > a > b라면
if(c > a) {
max = c;
}
// a > (b,c)
else {
max = a;
}
// b > a라면
}else {
// c > b > a라면
if(c > b) {
max = c;
}
// b> (a,c)
else {
max = b;
}
}
System.out.println(max * 100);
}else {
// 3개의 변수가 모두 같은경우
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);
}
}
}
}
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
8393 - 합 (0) | 2023.08.16 |
---|---|
10950 - A + B - 3 (0) | 2023.08.16 |
2525 - 오븐 시계 (0) | 2023.08.15 |
2884 - 알람 시계 (0) | 2023.08.15 |
[백준] - 18108 1998년생인 내가 태국에선 2541년생?! (0) | 2023.08.15 |
@leegeonwoo :: geonwoo
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!