알고리즘 공부/CodeUp 문제풀이

코드업 1382:GuguClass(C)

티들 2023. 9. 17. 23:04

문제설명
모 드라마의 한 장면에서 어떤 남자가 신의 속도로 코딩을 하면서,

"1줄로 짤 코드를 누가 10줄로 만들어 놓았어요?"

라고 말하는 장면이 프로그래머들 사이에서 주목을 받게 되었다.

관련 동영상 보기(클릭)

다시 보기로 분석한 결과 이 남성이 작성한 코드는 구구단 중 2~5단을 예쁘게 출력하는 클래스인 것으로 확인되었다.

일명 GuguClass !!

이 남자가 작성한 코드의 실행 결과는 다음과 같다.

이 GuguClass와 동일한 결과를 나타내는 프로그램을 작성하시오.

만약 출력문으로만 작성하거나, 코드가 길면 이 남자가 가만히 있을 것 같지 않다!

입력 예시
입력은 없다.

 

출력 예시

구구단의 2~5단을 문제 설명에서 보여준 출력 양식대로 출력한다.

표현 오류가 날 가능성이 높으므로 다음 조건들을 잘 확인하여 작성한다.

1. 연산자와 피연산자 사이에는 공백이 한칸 존재한다. 곱셈 기호는 소문자 x이다.

2. 곱셈의 결과는 두 칸으로 봤을 때 우측 정렬하여 출력한다. (%2d)

3. 단과 단 사이에는 탭(\t)으로 분리한다. 한칸 아님.

4. 각 행의 마지막인 5단의 곱셈 결과를 출력한 후 공백없이 바로 줄을 바꾼다(\n).

 

내 코드

#include <stdio.h>

int main()
{
    int i, j;	// for문 변수 선언
    for(i=1;i<=9;i++)	// 세로 반복
    {
        for(j=2;j<=5;j++)	// 가로 반복
        {
            printf("%d x %d = %2d", j, i, j*i);	// 출력문
            if(j!=5) printf("\t");	// 탭인지 줄바꿈인지 확인
            else printf("\n");
        }
    }
    return 0;
}

모범 답안

#include <stdio.h>

int main()
{
    int i, j;
    
    for(i = 1; i <= 9; i++)
    {
        for(j = 2; j <= 5; j++)
        {
            printf("%d x %d = %2d", j, i, j*i);
            if (j != 5) printf("\t");
            else puts("");
        }
   }
    
    return 0;
}