[백준 30889] 좌석 배치도 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
상영관의 좌석이 10
* 20
의 격자로 되어 있을 때,
입력으로 주어지는 정보에 따라서 상영관의 배치도를 출력하는 문제입니다.
각 좌석의 정보는 열 번호
+ 좌석 번호
의 형태로 주어집니다.
예를 들어, "A5"
는 "A열의 5번 좌석을 예매한 것"
을 의미합니다.
또한, 예매가 완료된 좌석은 o
로, 비어있는 좌석은 .
로 표시하여 출력해야 합니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
namespace Solution {
class Program {
static void Main(string[] args) {
Console.SetIn(new StreamReader(Console.OpenStandardInput()));
var n = int.Parse(Console.ReadLine()!);
var seats = new char[10, 20];
Enumerable.Range(0, 10).ToList().ForEach(i =>
Enumerable.Range(0, 20).ToList().ForEach(j =>
seats[i, j] = '.'));
Enumerable.Range(0, n).ToList().ForEach(_ => {
var seatInfo = Console.ReadLine()!;
var row = seatInfo[0] - 'A';
var col = int.Parse(seatInfo.Substring(1)) - 1;
seats[row, col] = 'o';
});
Enumerable.Range(0, 10).ToList().ForEach(i => {
Enumerable.Range(0, 20).ToList().ForEach(j =>
Console.Write(seats[i, j]));
Console.WriteLine();
});
}
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <bits/stdc++.h>
using namespace std;
typedef vector<char> vc;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n; cin >> n;
vector<vc> seats(10, vc(20, '.'));
for (int i = 0; i < n; i++) {
string seatInfo; cin >> seatInfo;
int row = seatInfo[0] - 'A',
col = stoi(seatInfo.substr(1)) - 1;
seats[row][col] = 'o';
}
for (const auto& row : seats) {
for (const auto& seat : row)
cout << seat;
cout << "\n";
}
return 0;
}