Programming/JUNGOL : 정보올림피아드&알고리즘

[JUNGOL 도형만들기1-1341]: 구구단2

토토모에요 2021. 8. 18. 13:05
728x90
반응형

JUNGOL 정보올림피아드&알고리즘에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.

http://www.jungol.co.kr/

문제

원하는 구구단의 범위를 입력받아 해당 구간의 구구단을 출력하는 프로그램을 작성하시오.


<처리조건>

(1) 구간의 처음과 끝을 입력받는다. 

(2) 입력된 구간은 반드시 처음 입력 값이 끝의 입력 값보다 작아야 하는 것은 아니다. 

    즉, 입력된 구간의 범위는 증가하거나 감소하는 순서 그대로 출력되어야 한다.​

입력 형식

구구단의 시작 범위 s와 끝 범위 e가 주어진다. (s와 e는 2부터 9사이의 정수)

출력 형식

시작 범위와 끝 범위사이의 구구단을 출력하되 모든 값과 부호 사이는 공백으로 구분하여 아래 출력 예와 같이 줄을 맞추어 출력해야 한다. 식과 식 사이는 3개의 공백으로 구분하고 구구단 사이에는 한 줄을 비워 두도록 한다.

입력 예

4 3

출력 예

4 * 1 =  4   4 * 2 =  8   4 * 3 = 12
4 * 4 = 16   4 * 5 = 20   4 * 6 = 24
4 * 7 = 28   4 * 8 = 32   4 * 9 = 36

3 * 1 =  3   3 * 2 =  6   3 * 3 =  9
3 * 4 = 12   3 * 5 = 15   3 * 6 = 18
3 * 7 = 21   3 * 8 = 24   3 * 9 = 27

code

while True:
    s,e=map(int,input().split())
    if (s>=2 and s<=9) and (e>=2 and e<=9):
        if s>e:
            for i in range(s,e-1,-1):
                for j in range(1,10):
                    if j*i>=10:
                        print("%d * %d = %d"%(i,j,j*i),end="   ")
                    elif j*i<10:
                        print("%d * %d =  %d"%(i,j,j*i),end="   ")
                    if j%3==0:
                        print("",end="\n")
                if i==e:
                    break
                else:
                    print("")
            break
        elif s<e:
            for i in range(s,e+1):
                for j in range(1,10):
                    if j*i>=10:
                        print("%d * %d = %d"%(i,j,j*i),end="   ")
                    elif j*i<10:
                        print("%d * %d =  %d"%(i,j,j*i),end="   ")
                    if j%3==0:
                        print("",end="\n")
                if i==e:
                    break
                else:
                    print("")
            break
        elif s==e:
            for i in range(s,s+1):
                for j in range(1,10):
                    if j*i>=10:
                        print("%d * %d = %d"%(i,j,j*i),end="   ")
                    elif j*i<10:
                        print("%d * %d =  %d"%(i,j,j*i),end="   ")
                    if j%3==0:
                        print("",end="\n")
                if i==s:
                    break
                else:
                    print("")
            break

    else:
        print("INPUT ERROR")
        pass

효율성을 높일 수는 없었지만 의외로 간단한 문제였다.

반응형