58-2. 주사위 게임 2 - 다른 사람의 풀이 이해하기

박은서's avatar
Jan 26, 2026
58-2. 주사위 게임 2 - 다른 사람의 풀이 이해하기

1️⃣ 변수

int answer = 1;
  • 최종 점수를 저장할 변수
  • 곱셈을 해야 하니까 1부터 시작
int count = 1;
➡️ count = 몇 단계까지 곱할지를 의미
상황
count 값
모두 다름
1
두 개 같음
2
세 개 같음
3

2️⃣ count를 어떻게 정하냐?

🔸 두 수라도 같으면

if(a == b || a == c || b == c) { count++; }
  • 하나라도 같은 게 있으면
  • count = 2

🔸 세 수가 모두 같으면

if(a == b && b == c) { count++; }
  • 전부 같으면
  • count = 3

📌 정리

a,b,c 상태
count
전부 다름
1
둘만 같음
2
전부 같음
3

3️⃣ 핵심 for문 (여기가 제일 중요)

for(int i = 1; i <= count; i++) { answer *= (pow(a,i)+pow(b,i)+pow(c,i)); }
➡️ i = 1부터 count까지 (a^i + b^i + c^i) 를 계속 곱해라

✅ case 1: 세 수가 다 다를 때 (count = 1)

i = 1 answer *= (a¹ + b¹ + c¹)
➡️ a + b + c
✔ 문제의 1번 규칙과 동일

✅ case 2: 두 수만 같을 때 (count = 2)

i = 1 → (a + b + c) i = 2 → (a² + b² + c²)
➡️ (a + b + c) × (a² + b² + c²)
✔ 문제의 2번 규칙과 동일

✅ case 3: 세 수가 모두 같을 때 (count = 3)

i = 1 → (a + b + c) i = 2 → (a² + b² + c²) i = 3 → (a³ + b³ + c³)
➡️ (a + b + c) × (a² + b² + c²) × (a³ + b³ + c³)
✔ 문제의 3번 규칙과 동일

4️⃣ pow 함수는 뭐냐?

코드

private int pow(int a, int b) { if(b == 0) return 1; return a * pow(a, b-1); }
➡️ a의 b제곱을 구하는 함수

예시

  • pow(3,2) → 3 × 3 = 9
  • pow(4,3) → 4 × 4 × 4 = 64
(재귀로 만든 직접 구현 버전)

🔹 전체를 한 문장으로 정리

이 코드는
“주사위 값이 같은 개수(count)를 구한 뒤, (a+b+c), (a²+b²+c²), (a³+b³+c³)을 count만큼 차례대로 곱해서 점수를 계산한다.”
Share article