[백준 6856] Roll the Dice (C#, C++) - soo:bak
작성일 :
문제 링크
설명
주어진 두 주사위를 굴려서 합이 10
이 되는 경우의 수를 찾는 문제입니다.
이 때, 하나의 주사위는 m
개의 면을 가지고 있고, 다른 하나의 주사위는 n
개의 면을 가지고 있습니다.
따라서, 각 주사위를 독립적으로 고려하여 가능한 모든 값에 대하여 그 값이 10
과 얼마나 차이가 나는지 확인하면 됩니다.
예를 들어, 첫 번째 주사위가 2
를 나타내면 두번 째 주사위는 8
을 나타내야 합이 10
이 됩니다.
그런 다음, 두 번째 주사위가 필요한 값을 나타낼 수 있는 면의 수를 가지고 있는지 확인하면 됩니다.
위 과정을 두 주사위의 모든 가능한 값에 대하여 반복하면, 합이 10
이 되는 모든 방법을 찾을 수 있습니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
namespace Solution {
class Program {
static void Main(string[] args) {
var m = int.Parse(Console.ReadLine()!);
var n = int.Parse(Console.ReadLine()!);
int ways = 0;
for (int i = 1; i <= m; i++) {
if (10 - i >= 1 && 10 - i <= n)
ways++;
}
if (ways == 1)
Console.WriteLine("There is 1 way to get the sum 10.");
else
Console.WriteLine($"There are {ways} ways to get the sum 10.");
}
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int m, n; cin >> m >> n;
int ways = 0;
for (int i = 1; i <= m; i++) {
if (10 - i >= 1 && 10 - i <= n)
ways++;
}
if (ways == 1) cout << "There is 1 way to get the sum 10." << "\n";
else cout << "There are " << ways << " ways to get the sum 10." << "\n";
return 0;
}