728x90
문제 링크 : https://www.acmicpc.net/problem/2775
백준 브론즈 1 문제 입니다.
내 코드
int _int = int.Parse(Console.ReadLine());
int[,] _rooms = new int[15, 14];
for (int i = 0; i < 14; i++)
{
_rooms[0, i] = i + 1;
}
for (int i = 1; i < 15; i++)
{
for (int j = 0; j < 14; j++)
{
if (j == 0) _rooms[i, j] = _rooms[i - 1, 0];
else _rooms[i, j] = _rooms[i - 1, j] + _rooms[i, j - 1];
}
}
for (int i = 0; i < _int; i++)
{
int floor = int.Parse(Console.ReadLine());
int room = int.Parse(Console.ReadLine()) - 1;
Console.WriteLine(_rooms[floor, room]);
}
코드 풀이 해석 내용
입력받기
int _int = int.Parse(Console.ReadLine());
테스트 케이스의 수를 입력 받습니다.
배열 초기화
int[,] _rooms = new int[15, 14];
15층과 14개의 방을 나타내는 2차원 배열 _rooms를 초기화 시킵니다.
1층 방 초기화
for (int i = 0; i < 14; i++)
{
_rooms[0, i] = i + 1;
}
1층의 각 방에는 1부터 14까지의 숫자를 넣어 초기화합니다.
이는 각 방에 거주할 수 있는 사람 수를 나타냅니다.
거주자 수 계산
for (int i = 1; i < 15; i++)
{
for (int j = 0; j < 14; j++)
{
if (j == 0) _rooms[i, j] = _rooms[i - 1, 0];
else _rooms[i, j] = _rooms[i - 1, j] + _rooms[i, j - 1];
}
}
2층부터 15층까지 각 방의 거주자 수를 계산합니다.
첫 번째 방 (j == 0)은 바로 아래층의 첫 번째 방과 동일하게 설정합니다.
나머지 방은 바로 아래층의 같은 방과 현재층의 이ㅇ전 방의 거주자 수를 더하여 계산합니다.
결과 출력
for (int i = 0; i < _int; i++)
{
int floor = int.Parse(Console.ReadLine());
int room = int.Parse(Console.ReadLine()) - 1;
Console.WriteLine(_rooms[floor, room]);
}
입력받은 층과 방 번호에 대해 거주자 수를 출력합니다.
방 번호는 0부터 시작하므로 1을 빼줍니다.
실행 결과
728x90
'C#' 카테고리의 다른 글
백준 C# 1259 문제 풀이 (0) | 2024.09.19 |
---|---|
백준 C# 25206 문제 풀이 (0) | 2024.09.19 |
백준 C# 30802 문제 풀이 (0) | 2024.09.18 |
백준 C# 4153 문제 풀이 (0) | 2024.09.17 |
백준 C# 1181 문제 풀이 (0) | 2024.09.16 |