본문 바로가기
코딩테스트/[python]정올

[python] 정올 1341 : 구구단2

by o_oo 2022. 3. 17.

서론

'정올 1291 : 구구단'에 이어 하나 더 풀어봤다. 앞에랑 비슷하고 출력 요건만 조금 바꿔주면 된다.


문제

http://jungol.co.kr/bbs/board.php?bo_table=pbank&code=1341&sca=2010

 

JUNGOL

 

www.jungol.co.kr


문제

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

 

 

<처리조건>

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

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

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

 

입력형식

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

 

출력형식

시작 범위와 끝 범위사이의 구구단을 출력하되 모든 값과 부호 사이는 공백으로 구분하여 

아래 출력 예와 같이 줄을 맞추어 출력해야 한다.

 

식과 식 사이는 3개의 공백으로 구분하고 구구단 사이에는 한 줄을 비워 두도록 한다.


나의 풀이

while True:
    a, b = map(int, input().split())
    
    if a < 2 or a > 9 or b < 2 or b > 9:
        continue
        
    else:
        v = -1 if (a >= b) else 1
        for i in range(a, b + v, v):
            for j in range(1, 10):
                result = '{0} * {1} = {2:>2}'.format(i, j, i*j)
                print(result, end='   ')
                if j % 3 == 0: print()
            print()
        break​

 

구구단1과 다르게 입력 값의 대소비교에 if 문을 한줄로 써보았다.

 

v = -1 if (a >= b) else 1

 

파이썬에서 if문을 한줄로 깔끔하게 적을수 있는 방식이 있다는게 신기했다. 앞으로 여러 코테에서도 코드를 클린하게 만들어 줄거같다.

 


+ 피드백과 새로운 풀이 방법은 언제든지 환영입니다!

댓글