본문 바로가기
Algorithm/Baekjoon

Baekjoon 1233 주사위 JAVA

by Hunveloper 2023. 1. 12.
728x90

 

1233번: 주사위

지민이는 주사위 던지기 게임을 좋아하여 어느 날 옆에 있는 동호를 설득하여 주사위 던지기 게임을 하자고 하였다. 총 3개의 주사위가 있다. 그리고 이 주사위는 각각 S1(2 ≤ S1 ≤ 20), S2(2 ≤ S2

www.acmicpc.net

문제

지민이는 주사위 던지기 게임을 좋아하여 어느 날 옆에 있는 동호를 설득하여 주사위 던지기 게임을 하자고 하였다. 총 3개의 주사위가 있다. 그리고 이 주사위는 각각 S1(2 ≤ S1 ≤ 20), S2(2 ≤ S2 ≤ 20), S3(2 ≤ S3 ≤ 40)개의 면이 있다. (실제로는 주사위가 6개의 면이 있는 것이 정상이지만 특별한 주사위라 생각하자.)

문제는 세 개의 주사위를 동시에 던졌을 때 가장 높은 빈도로 나오는 세 주사위의 합을 구하는 것이다.

예를 들어, S1 = 3, S2 = 2, S3 = 3으로 주어질 때, 주사위1은 S1(3)개의 면이 있으므로 1, 2, 3의 눈을 가지고, 주사위2는 S2(2)개의 면이 있으므로 1, 2의 눈을 가지며, 주사위3은 S3(3)개의 면이 있으므로 1, 2, 3의 눈을 가진다. 이 때, 이 3개의 주사위를 던져서 눈의 합을 구하면, (1, 1, 1) = 3, (1, 1, 2) = 4, (1, 1, 3) = 5, ... , (3, 2, 1) = 6, (3, 2, 2) = 7, (3, 2, 3) = 8과 같은 합들을 얻을 수 있다. 이 때, 가장 많이 발생하는 합을 구하는 것이다.

입력

입력 파일의 첫째 줄에 정수 S1, S2, S3가 주어진다.

출력

출력 파일의 첫째 줄에 가장 높은 빈도로 나오는 세 주사위 합을 구하는 것이다. 단 답이 여러개라면 가장 합이 작은 것을 출력한다.

풀이

3중 for문을 이용하여 나올 수 있는 모든 경우의 수를 수행하고,

최대로 많이 나온 횟수를 찾아서 출력한다.

코드
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int s1=sc.nextInt(), s2=sc.nextInt(), s3=sc.nextInt();
		int [] arr = new int [101];
		for(int i=1;i<=s1;i++)
			for(int j=1;j<=s2;j++)
				for(int k=1;k<=s3;k++)
					arr[i+j+k]++;
		int ans=0, cnt=0;
		for(int i=0;i<=100;i++)
			if(cnt<arr[i]) {
				cnt=arr[i];
				ans=i;
			}
		System.out.println(ans);
	}
}

 

728x90
728x90

'Algorithm > Baekjoon' 카테고리의 다른 글

Baekjoon 8595 히든 넘버 JAVA  (0) 2023.03.07
Baekjoon 1037 약수 JAVA  (0) 2023.01.12
Baekjoon 1173 운동 JAVA  (0) 2022.11.22
Baekjoon 2010 플러그 JAVA  (0) 2022.11.22
Baekjoon 14425 문자열 집합 JAVA  (0) 2022.11.22

댓글