© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 5356 - Triangles

2025-11-05
BOJ
브론즈 III
cpp
원본 문제 보기
구현

문제

BOJ 5356 - Triangles

T개의 테스트케이스가 주어진다. 각 테스트케이스는 행 수 N과 시작 문자 C로 구성된다. 1행에는 C를 1개, 2행에는 다음 문자를 2개, ... , N행에는 N개의 문자를 출력하여 삼각형 모양을 만든다. 문자는 Z 이후 다시 A로 순환한다.

입력

  • 첫 번째 줄: 테스트케이스 수 T
  • 이후 T줄: 행 수 N과 시작 문자 C

출력

  • 각 테스트케이스마다 N행짜리 삼각형을 출력하고, 테스트케이스 사이에 빈 줄을 삽입한다.

예제

입력출력
2 3 A 2 ZA BB CCC `` Z AA

풀이

T개의 테스트케이스에 대해 i번째 행에서 현재 문자를 i번 출력하고, 매 행마다 문자를 다음 알파벳으로 순환시킨다.

  1. T를 입력받고 T번 반복한다.
  2. 각 테스트케이스에서 N과 시작 문자 C를 입력받는다.
  3. 1행부터 N행까지 반복하며 현재 문자를 행 번호만큼 출력한다.
  4. 매 행 출력 후 문자를 증가시키고, Z를 초과하면 A로 되돌린다.
  5. 각 테스트케이스 출력 후 빈 줄을 출력한다.

핵심 아이디어: 문자 순환 처리를 c++; if (c > 'Z') c = 'A';로 간단히 구현한다. i번째 행에는 i개의 문자를 출력하므로 총 출력 문자 수는 N*(N+1)/2개이다.

코드

#include <iostream>
using namespace std;
 
int T, N;
char c;
 
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
 
  cin >> T;
  while (T--)
  {
    cin >> N >> c;
    for (int i = 1; i <= N; i++)
    {
      for (int j = 0; j < i; j++)
        cout << c;
      cout << '\n';
      c++;
      if (c > 'Z')
        c = 'A';
    }
    cout << '\n';
  }
}

복잡도

  • 시간: O(T * N²) — 테스트케이스마다 삼각형 출력 (총 N*(N+1)/2 문자)
  • 공간: O(1) — 추가 자료구조 없음