JUNGOL 1291 구구단 범위
원하는 구구단의 범위를 입력받아 해당 구간의 구구단을 출력하는 프로그램을 작성하시오.
<처리조건>
(1) 구간의 처음과 끝을 입력받는다.
(2) 입력된 구간은 반드시 처음 입력 값이 끝의 입력 값보다 작아야 하는 것은 아니다.
즉 입력된 구간의 범위는 증가하거나 감소하는 순서 그대로 출력되어야 한다.
<입력 형식>
구구단의 시작 범위 s,와 끝 범위 e를 입력받는다.(s와 e는 2부터 9사이의 정수)
하나의 결과가 출력되면 프로그램을 종료한다.
<출력 형식>
시작 범위와 끝 범위사이의 구구단을 출력하되 모든 값과 부호 사이는 공백으로 구분하여
아래 출력 예와 같이 줄을 맞추어 출력해야 한다.
구구단 사이는 3개의 공백으로 구분한다.
데이터의 크기가 주어진 범위를 벗어날 경우는 "INPUT ERROR!"를 출력하고 s와 e를 다시 입력받는다.
내가 제출한 코드
a, b = map(int, input().split())
while True:
if a > 1 and a < 10 and b > 1 and b < 10:
if a > b:
for i in range(1, 10):
for j in range(a, b-1, -1):
print(f"{j} * {i} = {i*j:>2}", end=" ")
print()
break
else:
for i in range(1, 10):
for j in range(a, b+1):
print(f"{j} * {i} = {i*j:>2}", end=" ")
print()
break
else:
print("INPUT ERROR!")
a, b = map(int, input().split())
(1) input()함수로 입력 받은 후, split()함수를 사용하여 입력 받은 문자열을 공백으로 분리하여 리스트로 반환
(2) map()함수를 사용해 리스트의 모든 값들을 int형으로 반환
(3) int형으로 변환된 map객체의 값들을 a, b에 각각 할당
(4) while문을 사용 -> 입력 값이 잘못됐을 시 에러메세지 출력과 a,b입력을 다시 받기 위해
(5) if조건문으로 a,b입력 값 범위 지정
(6) 내림차순 조건문 : for j in range(a, b-1, -1) 사용 => (a시작 , b까지, 1씩 감소)
(7) f-strings 정렬 사용하여 구구단 값 오른쪽 정렬. end는 공백 3칸 지정하여 개행 없애고 공백3칸으로 구분
'코딩테스트' 카테고리의 다른 글
백준 2439 - 별찍기 2 (0) | 2023.03.28 |
---|---|
백준 25304 - 영수증 (0) | 2023.03.28 |
간단 퀴즈 - 택시 승객 시간별 매칭 (0) | 2023.03.25 |
코딩 퀴즈 - 치킨집 자동 주문 시스템 (0) | 2023.03.23 |
코딩 퀴즈 - 부동산 프로그램 (1) | 2023.03.23 |