알고리즘/백준알고리즘
[백준알고리즘] #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
반응형