작성일 :

문제 링크

11944번 - NN

설명

입력으로 주어진 수 N N번 반복하여 출력하되, 최대 출력 길이를 M으로 제한하는 문자열 문제입니다.

  • 입력은 정수 N과 정수 M이 주어집니다.
  • 숫자 N을 문자열로 보아 N번 반복한 문자열을 만듭니다.
  • 단, 반복된 전체 문자열이 길이 M을 초과하면 앞에서부터 M길이만큼 자른 문자열을 출력해야 합니다.

접근법

  • 먼저 N문자열로 입력받아 반복에 사용합니다.
  • 반복 횟수에 대해서는 N이 정수 값으로 활용되므로, 문자열로 저장한 N을 정수값으로 변환하여 사용합니다.
  • 반복하여 문자열을 누적한 뒤, 길이가 M을 초과하는 경우 문자열의 길이가 M 이 되도록 자릅니다.

Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Text;

class Program {
  static void Main() {
    var inputs = Console.ReadLine().Split();
    string n = inputs[0];
    int m = int.Parse(inputs[1]);
    int repeat = int.Parse(n);

    var sb = new StringBuilder();
    for (int i = 0; i < repeat && sb.Length <= m; i++)
      sb.Append(n);

    if (sb.Length > m)
      sb.Length = m;

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

using namespace std;

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

  string n; size_t m; cin >> n >> m;

  int repeats = stoi(n), printed = 0;
  string ans = "";
  while (printed != repeats) {
    ans += n;
    printed++;
  }

  if (ans.size() > m) ans.resize(m);

  cout << ans << "\n";

  return 0;
}