알고리즘/백준알고리즘

[백준알고리즘] #2480. 주사위 세개 (by JAVA and node.js)

Jimnya 2022. 4. 20. 12:51
728x90
반응형

백준알고리즘

- Bronze 4 -

 #2480. 주사위 세개 by JAVA and node.js 

 


 

문제

출처: https://www.acmicpc.net/problem/2480 

 


 

접근 방법

문제를 이해하고, 문제를 if-else if-else문으로 담는다. + Math.max()

 


 

풀이

▶ JAVA

처음엔 입력값을 배열에 담아 정렬하고 어쩌고 저쩌고,, 하면서 풀었다. (맞긴 함)

다 적어놓고 더 정리를 할 수 있으면 좋겠다 싶어 중복된 것을 지우고 최대한 간결하게 바꿔서 재제출 했다.

(시간 차는 미미했지만)

// 1차 풀이 - 굉장히 정신없다.
import java.util.*;

public class Main {
    public static void main(String[] args){
    	Scanner scan = new Scanner(System.in);
    	int[] square = new int[3];
    	for(int i=0; i<square.length; i++) {
    		square[i] = scan.nextInt();
    	}
    	scan.close();
    	
    	Arrays.sort(square); // 배열 기본 오름차순 정렬
    	int cnt = 0;
    	int result = 0;
    	
    	if(square[0] == square[1]) {
            cnt ++;
            result = square[0];
    	}
    	if(square[0] == square[2]) {
            cnt ++;
    	}
    	if(square[1] == square[2]) {
            cnt ++;
            if(result == 0) {
                result = square[1];
            }
    	}
    	
    	if(cnt == 0) {
            System.out.println(square[2] * 100);
    	} else if(cnt == 1) {
            System.out.println(1000 + result * 100);
    	} else if(cnt == 3) {
            System.out.println(10000 + result * 1000);
    	}
    }
}
// 2차 제출
import java.util.*;

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

 

▶ node.js

node.js에서는 입력값이 애초에 배열에 담겨지고 그걸 잘라주기 때문에 JAVA의 2번째 제출 방법으로 했다.

var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().trim().split(' ').map(v => +v);

var a = input[0];
var b = input[1];
var c = input[2];

if(a == b && b == c && a == c){
    console.log(10000 + a * 1000);
} else if (a == b || b == c){
    console.log(1000 + b * 100);
} else if (a == c){
    console.log(1000 + a * 100);
} else {
    console.log(Math.max(a, Math.max(b, c)) * 100);
}

 


 

결과

 


 

 

 

 

 

End.

heisely's 괴발개발 개발일지

 

728x90
반응형