작성일 :

문제 링크

6916번 - 0123456789

설명

간단한 구현 문제이지만, 문제의 설명이 다소 불친절 합니다.

우선, 문제의 목표는 * 3개로 이루어진 segment0 부터 9 까지의 숫자를 출력하는 것입니다.

하지만 문제의 예시와 다르게, 각 숫자의 마지막 부분에 (공백) 이 있어서는 안되며, * 하나로 이루어진 라인 또한 뒷부분에 공백이 있어서는 안됩니다.

따라서, 예시의 숫자들을 그대로 사용해서는 안되며, 위의 경우에 해당하는 부분에 대하여 뒷부분 공백을 모두 삭제해주어야 합니다.

또한, 14 의 경우에 첫 번째 라인에 * 을 출력하지 않더라도, 필수적으로 개행 문자를 추가시켜주어야 합니다.

위 조건들을 지키지 않는다면 출력 형식이 잘못되었습니다 의 결과를 받게 됩니다.


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 List<string> SegmentNum(int n) {
      string[][] nums = {
        new[] {" * * *", "*     *", "*     *", "*     *", "",       "*     *", "*     *", "*     *", " * * *"}, // 0
        new[] {"",       "      *", "      *", "      *", "",       "      *", "      *", "      *"},           // 1
        new[] {" * * *", "      *", "      *", "      *", " * * *", "*",       "*",       "*",       " * * *"}, // 2
        new[] {" * * *", "      *", "      *", "      *", " * * *", "      *", "      *", "      *", " * * *"}, // 3
        new[] {"",       "*     *", "*     *", "*     *", " * * *", "      *", "      *", "      *"},           // 4
        new[] {" * * *", "*",       "*",       "*",       " * * *", "      *", "      *", "      *", " * * *"}, // 5
        new[] {" * * *", "*",       "*",       "*",       " * * *", "*     *", "*     *", "*     *", " * * *"}, // 6
        new[] {" * * *", "      *", "      *", "      *", "",       "      *", "      *", "      *"},           // 7
        new[] {" * * *", "*     *", "*     *", "*     *", " * * *", "*     *", "*     *", "*     *", " * * *"}, // 8
        new[] {" * * *", "*     *", "*     *", "*     *", " * * *", "      *", "      *", "      *", " * * *"}  // 9
      };

      return new List<string>(nums[n]);
    }

    static void Main(string[] args) {
      var n = int.Parse(Console.ReadLine()!);

      List<string> segNum = SegmentNum(n);
      foreach (var line in segNum)
        Console.WriteLine(line);

    }
  }
}



[ 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
31
32
33
34
35
#include <bits/stdc++.h>

using namespace std;

typedef vector<string> vs;

vs segmentNum(int n) {
  vector<vs> nums = {
    {" * * *", "*     *", "*     *", "*     *", "",       "*     *", "*     *", "*     *", " * * *"}, // 0
    {"",       "      *", "      *", "      *", "",       "      *", "      *", "      *"},           // 1
    {" * * *", "      *", "      *", "      *", " * * *", "*",       "*",       "*",       " * * *"}, // 2
    {" * * *", "      *", "      *", "      *", " * * *", "      *", "      *", "      *", " * * *"}, // 3
    {"",       "*     *", "*     *", "*     *", " * * *", "      *", "      *", "      *"},           // 4
    {" * * *", "*",       "*",       "*",       " * * *", "      *", "      *", "      *", " * * *"}, // 5
    {" * * *", "*",       "*",       "*",       " * * *", "*     *", "*     *", "*     *", " * * *"}, // 6
    {" * * *", "      *", "      *", "      *", "",       "      *", "      *", "      *"},           // 7
    {" * * *", "*     *", "*     *", "*     *", " * * *", "*     *", "*     *", "*     *", " * * *"}, // 8
    {" * * *", "*     *", "*     *", "*     *", " * * *", "      *", "      *", "      *", " * * *"}  // 9
  };

  return nums[n];
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n; cin >> n;

  vs segNum = segmentNum(n);
  for (const string& line : segNum)
    cout << line << "\n";

  return 0;
}