작성일 :

문제 링크

26766번 - Serca

설명

입력으로 주어지는 숫자 n 개 만큼 하트를 ASCII 아트로 출력하는 문제입니다.

단, 세로로 출력해야 합니다.

C# 의 경우, StringBuilder 를 사용하지 않으면, 시간 초과가 됩니다.


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
30
31
namespace Solution {

  using System.Text;
  class Program {
    static void Main(string[] args) {

      string[] heart = {
        " @@@   @@@ ",
        "@   @ @   @",
        "@    @    @",
        "@         @",
        " @       @ ",
        "  @     @  ",
        "   @   @   ",
        "    @ @    ",
        "     @     "
      };

      StringBuilder sb = new StringBuilder();

      var n = int.Parse(Console.ReadLine()!);
      for (int i = 0; i < n; i++) {
        for (int j = 0; j < 9; j++)
          sb.Append(heart[j] + "\n");
      }

      Console.Write(sb.ToString());

    }
  }
}



[ 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
#include <bits/stdc++.h>

using namespace std;

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

  const string heart[] = {
    " @@@   @@@ ",
    "@   @ @   @",
    "@    @    @",
    "@         @",
    " @       @ ",
    "  @     @  ",
    "   @   @   ",
    "    @ @    ",
    "     @     "
  };

  int n; cin >> n;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < 9; j++)
      cout << heart[j] << "\n";
  }

  return 0;
}