Algorithm/백준(BOJ)

[백준] 2480. 주사위 세개 (Java)

Carroti 2022. 10. 2. 23:51

 

문제

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

 

알고리즘

없음

 

풀이

1. 1부터 6까지 숫자가 각각 몇번 나왔는지 센다.

만약 입력이 3 3 6 이라면 수의 등장 횟수는 [0 0 2 0 0 1] 이 된다.

 

2.1부터 6까지 등장 횟수를 확인한다.

숫자 i의 등장 횟수를 c라고 할 때,

숫자가 2번 이상 나왔다면 답은 10c+1 + 10c * i이고, 다른 숫자를 확인할 필요가 없다.

숫자가 1번 나왔다면 답을 100 * i 로 갱신한다. 작은 수부터 큰 수로 확인하기 때문에 가장 큰 눈 * 100이 저장된다.

 

 

 

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		int count[] = new int[7];
		for (int i = 0; i < 3; i++)
			count[Integer.parseInt(st.nextToken())]++;
		
		int ans = 0;
		for(int i=1; i<=6; i++) {
			if(count[i]>1) {
				ans = (int) (Math.pow(10, count[i]+1) + Math.pow(10, count[i])*i);
				break;
			}
			else if(count[i] == 1) {
				ans = i * 100;
			}
		}
		
		System.out.println(ans);
	}
}