C#

백준 C# 2775 문제 풀이

psb08 2024. 9. 18. 23:48
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