작성일 :

문제 링크

30889번 - 좌석 배치도

설명

상영관의 좌석이 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;
}