일지
JUNGOL...93
niamdank
2021. 7. 14. 13:30
Beginner_Coder/재귀/주사위 던지기2
문제
자연수 N과 M을 입력 받아서 주사위를 N번 던져서 나온 눈의 합이 M이 나올 수 있는 모든 경우를 출력하는 프로그램을 작성하시오.
입력 형식
첫 줄에 주사위를 던진 횟수 N(2≤N≤7)과 눈의 합 M(1≤M≤40)이 들어온다.
출력 형식
주사위를 던진 횟수의 합이 M이 되는 경우를 모두 출력한다.
작은 숫자 부터 출력한다.
입력 예
3 10
출력 예
1 3 6
1 4 5
1 5 4
1 6 3
2 2 6
2 3 5
…
6 2 2
6 3 1
RollDice2.h
#include <iostream>
class RollDice2 : public Base
{
private:
void AllNumbersSameTotal(int arr[], int n, int m, int depth = 0, int total = 0);
};
RollDice2.cpp
void RollDice2::Code()
{
int n, m;
std::cin >> n >> m;
int* arr = new int[n];
AllNumbersSameTotal(arr, n, m);
delete[] arr;
}
void RollDice2::AllNumbersSameTotal(int arr[], int n, int m, int depth, int total)
{
if (depth == n)
{
if (total == m)
{
for (int i = 0; i < n; i++)
{
std::cout << arr[i] << ' ';
}
std::cout << '\n';
}
return;
}
for (int i = 1; i <= 6; i++)
{
arr[depth] = i;
AllNumbersSameTotal(arr, n, m, depth + 1, total + i);
}
}
실행 결과 Success(100)
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)
NadanKim/CodingTest_JUNGOL
JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.
github.com