ABOUT ME

작은 디테일에 집착하는 개발자

Today
-
Yesterday
-
Total
-
  • [백준 알고리즘/Java] 2480번 주사위 세개
    IT Study/백준 알고리즘 2023. 3. 13. 15:15
    728x90

     

    Math 함수를 사용하지 않고, if문을 활용하여 풀기 위해 많은 코드를 작성하였습니다.

     

    <오류>

    import java.util.*;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int a, b, c;
    		a = sc.nextInt();
    		b = sc.nextInt();
    		c = sc.nextInt();
    		
    		if(a==b && b==c) {
    			System.out.println(10000 + a*1000);
    		} else if (a==b) {
    			System.out.println(1000 + a*100);
    		} else if (b==c) {
    			System.out.println(1000 + b*100);
    		} else if (c==a) {
    			System.out.println(1000 + c*100);
    		} else {
    			int max = a;
    			if (max < b) max = b;
    			else if (max < c) max = c;
    			System.out.println(max*100);
    		}
    	}
    }

     

     

    ! 틀린 부분

    마지막 else 문에서 코드가 틀렸습니다..

    if (max < b) max = b;
    else if (max < c) max = c;

     

     

    첫 번째 줄인

    if (max < b) max = b;

    이후 if문을 중첩하여 (max < c)인지 확인해야 하지만... 못했습니다. (이런 바보..)

     

    <오류 수정본>

    import java.util.*;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int a, b, c;
    		a = sc.nextInt();
    		b = sc.nextInt();
    		c = sc.nextInt();
    		
    		if(a==b && b==c) {
    			System.out.println(10000 + a*1000);
    		} else if (a==b) {
    			System.out.println(1000 + a*100);
    		} else if (b==c) {
    			System.out.println(1000 + b*100);
    		} else if (c==a) {
    			System.out.println(1000 + c*100);
    		} else {
    			int max = a;
    			if (max < b) {
                		max = b;
    				if (max < c) {
                    		max = c;
    				}
    			} else if (max < c) {
    				max = c;
    			}
    			System.out.println(max*100);
    		}
    	}
    }

    실수하지 않도록 주의해야겠습니다..

     

    <최종 제출본>

    import java.util.*;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int a, b, c;
    		a = sc.nextInt(); b = sc.nextInt(); c = sc.nextInt();
    		int res = 0;
    		
    		if(a==b && b==c) {
    			res = 10000 + a*1000;
    		} else if (a==b || a==c) {
    			res = 1000 + a*100;
    		} else if (b==c) {
    			res = 1000 + b*100;
    		} else {
    			res = Math.max(Math.max(a,  b), c)*100;	// Math.max() : 두 인자 중 큰 값 return
    		}
    		System.out.println(res);
    	}
    }

     

    최종 제출본은 Math.max() 함수를 사용했습니다.

    앞으로는 오류를 더 줄일 수 있도록 확실한 방법을 사용하여 코드를 작성하도록 하겠습니다..!

Designed by Tistory.