ascode 1213 동전이 열리는 나무

1 분 소요

문제 설명

농부 지성이의 농장은 다이아몬드 모양으로 생겼다. 이 농장을 관리하는 지성이는 소들을 돌보다 지루해진 나머지 “동전이 열리는 나무” 라는 책을 읽었다.

이를 보고 동전을 땅에 심으면 돈나무가 자랄거라는 생각으로 농장에 동전을 묻으려고 한다. 동전을 묻는데도 재미를 추구하려는 지성이는 농장의 중앙에 첫 번째 종류의 동전을 묻고 중앙에서 바깥으로 나가면서 한걸음 나갈 때마다 다른 종류의 동전을 바닥에 묻으려고 한다.

지성이는 각각의 땅에 어떤 종류의 동전을 묻어야 할지 알려주는 프로그램을 작성해 보자.

입력 설명

첫 줄에는 테스트 케이스의 수T가 입력된다(1<= T <= 9). 테스트 케이스 수만큼 대해 농장의 크기N (1 <= N <= 9) 이 주어진다.

출력 설명

농장의 각 땅에 묻어야 할 동전의 종류를 출력한다. 사용하는 동전의 종류는 중앙부터 A, B, C, D,…, I 순으로 9가지를 사용하고 모양도 다이아몬드 모양으로 출력해야 한다. 각 테스트 케이스의 결과들 사이에는 빈 줄을 넣지 않도록 한다.

입력 예시

2
3
4

출력 예시

  C
 CBC
CBABC
 CBC
  C
   D
  DCD
 DCBCD
DCBABCD
 DCBCD
  DCD
   D

코드1

#include <stdio.h>
 
int main() {
    int a, n;
    scanf("%d", &a);
    for (int i = 0; i < a; i++)
    {
        scanf("%d", &n);
        for (int i = 1; i <= n; i++) {
            int with = 2 * i - 1;
            int temp = n;
            for (int j = n - i; j > 0; j--)
            {
                printf(" ");
            }
            for (int k = 0; k < 2 * i -1; k++)
            {
                if (k < (with / 2)) {
                    printf("%c", 64 + temp);
                    temp--;
                }else {
                    printf("%c", 64 + temp);
                    temp++;
                }
            }
            printf("\n");
        }
        for (int i = n - 1; i > 0; i--) {
            int with = 2 * i - 1;
            int temp = n;
            for (int j = n - i; j > 0; j--)
            {
                printf(" ");
            }
            for (int k = 0; k < 2 * i - 1; k++)
            {
                if (k < (with / 2)) {
                    printf("%c", 64 + temp);
                    temp--;
                }
                else {
                    printf("%c", 64 + temp);
                    temp++;
                }
            }
            printf("\n");
        }
    }
    return 0;
}

나 : say

몰?루

댓글남기기