백준) 2480번

Bak·2024년 2월 6일
0

백준

목록 보기
2/4

2480번 : 주사위 세개

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
	
		Scanner scan = new Scanner(System.in);
		
		long[] num = new long[3];
		long money = 0; long count = 0; 
		long same_num = 0; long max_num = 0;
		
		num[0] = scan.nextLong();
		num[1] = scan.nextLong();
		num[2] = scan.nextLong();
		
		for(int i=0 ; i < num.size() ; i++) {
			
			for(int j = i+1 ; j < num.size(); j++) {
				
				if(num[i] == num[j]) {
					count++;
					same_num = num[i];
				}
			}
		}
		
		System.out.println(same_num);
		
		if(count == 3) {
			money = 10000 + num[0] * 1000;
		}else if(count == 2) {
			money = 1000 + same_num * 100;
		}else {

 			for( long in : num) {
 				if(in > max_num) 
 					max_num = in;
 			}
 			
 			money = max_num * 100;
 			
 		}
 		
 		System.out.println(money);
		
	
	}

}
  • 처음 구현하고자 했던 것
    숫자 3개가 있을 때
    1,2를 비교 / 1,3을 비교 / 2,3을 비교한 후
    같을 때마다 count에 +1을 해주었다.

    → 이를 위해 이중루프 안의 j를 i+1의 값으로 설정했다.

    ij
    12,3
    23
    3X

    → 문제점 : 2 2 6으로 들어올 때 count의 값이 1로 나오게 된다.

    → 해결 : 배열이 아니라 ArrayList로 구현하여 같은 숫자가 나올 경우 list안에서 같은 숫자를 다 뺀후 list의 길이에 따라서 판별한다.

    inputnum.size()
    3 3 30
    2 2 61
    1 2 53
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
	
		Scanner scan = new Scanner(System.in);
		
		ArrayList<Long> num = new ArrayList<Long>();
		long money = 0; 
		long same_num = 0; long max_num = 0;
		
		num.add(scan.nextLong());
		num.add(scan.nextLong());
		num.add(scan.nextLong());
		
		for(int i=0 ; i < num.size() ; i++) {
			
			for(int j = i+1 ; j < num.size(); j++) {
				
				if((num.get(i) == num.get(j)) ) {
					same_num = num.get(i);
				}
			}
		}
		
		while(num.remove(Long.valueOf(same_num))) {}
		

		if(num.size() == 3) {
			
			for( long in : num) {
				if(in > max_num) 
					max_num = in;
			}
			
			money = max_num * 100;
			
		}else if(num.size() == 1) {
			
			money = 1000 + same_num * 100;
			
		}else {

			money = 10000 +same_num * 1000;		
		}
		
		System.out.println(money);

	}

}

0개의 댓글