백준 온라인 코딩 문제풀이
Baekjoon Online Judge
Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.
www.acmicpc.net
코드 참고
wny0320 (박 상운)
Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.
replit.com
2775에 대해 다룸
2775
using System;
class Program
{
static void Main(string[] args)
{
int T = int.Parse(Console.ReadLine());
int k=0;
int n=0;
int[] result = new int[T];
for(int i = 0; i < T; i++)
{
k = int.Parse(Console.ReadLine());
n = int.Parse(Console.ReadLine());
result[i] = floor(k, n);
}
for(int i = 0; i < T; i++)
{
Console.WriteLine(result[i]);
}
int floor(int k_, int n_)
{
if(k_ == 0)
{
return n_;
}
else
{
int sum = 0;
for(int i = 1; i <= n_; i++)
{
sum += floor(k_ - 1, i);
}
return sum;
}
}
}
}
재귀를 이용하여 풀음
floor라는 메서드를 하나 생성한 후 층의 값(k)가 0이면 해당 n값 출력
k가 0이 아닐 경우에 floor의 값은 k-1층에 있는 1호부터 n호까지의 사람수의 합
따라서 sum을 만들어 반복문을 통해 1~n까지 돌려서 floor(k-1,i)값을 하여 아래층 1호부터 n호까지의 합을 재귀하여 찾음