[Python] 구구단 가로로 출력하기 (feat. 구구단 응용편)

해당 포스트에서는 Python을 이용하여 구구단을 가로로 출력하는 방법을 소개합니다.

1. INTRO

프로그래밍 공부를 시작하신 분들에게 구구단 문제는 익숙하지만 어려운 문제일 수 있습니다. 이는 반복문을 이용해 간단한 형태의 구구단을 출력하는 문제도 있지만 변형된 형태의 응용 문제도 많이 출제되기 때문입니다. 이제부터 설명드릴 내용은 구구단 출력 응용편으로 세로가 아닌 가로 형태의 구구단을 출력하는 방법입니다.

▲ 결과 출력 예시

2. 문제 풀이

프로그래밍(코딩)의 시작은 원하는 결과를 얻을 수 있도록 코드의 구조를 설계하는 것으로 이번 문제도 설계만 잘하면 쉽게 풀 수 있는 문제에 속합니다. 앞으로 설명드릴 가로 형태의 구구단 출력 전체 코드를 보시면 너무 간단해 실망하실 수도 있습니다. ^^;

코드 구조를 설계하면서 고려한 부분은 아래와 같습니다.

  1. 각 행마다 모든 단이 출력되어야 한다.
  2. 세로 기준으로 하나의 단이 완성되어야 한다.
  3. 출력 결과는 각 단이 구분되도록 배치한다.

1. 각 행마다 모든 단이 출력되어야 한다.

각 행마다 모든 단이 출력된다는 것은 1행에는 각 단의 x1 값이 출력되고 2행에는 각 단의 x2 값이 출력된다고 생각할 수 있습니다. 해당 변수를 i로 설정한다면 i의 범위는 1부터 9가 됩니다.

▲ 각 행을 담당하는 변수

2. 세로 기준으로 하나의 단이 완성되어야 한다.

세로 기준 하나의 단을 만들기 위해서는 하나의 단위 곱셈을 기준으로 단을 표현하는 변수를 각 단에 맞게 증가시키면 됩니다. 해당 변수를 j로 설정한다면 j의 범위는 2부터 9가 됩니다.

▲ 단위 곱셈과 단을 담당하는 변수

3. 출력 결과는 각 단이 구분되도록 배치한다.

각 단이 구분되도록 출력하기 위해서는 각 단위 곱셈 간 동일한 간격이 유지되어야 합니다. 프로그래밍에서는 기본적으로 출력 간격을 유지하는 목적으로 Tab을 이용하며, print문에 적용할 때에는 \t를 넣어주시면 됩니다.

▲ 구구단 출력 배치

3. 전체 코드

위에서 설명한 모든 내용을 반영하여 완성된 전체 코드는 아래와 같습니다. 코드가 너무 짧아서 당황하셨을 수도 있지만 위에서 길게 설명한 내용이 모두 반영된 완성된 코드입니다.

위 내용을 아래 코드를 기반으로 리마인드 해보면, 아래 코드에서 i는 행, j는 단을 나타내는 변수로 각각 i1부터 10까지, j2부터 10까지 증가하며 반복문이 수행됩니다. 반복문이 종료될 때까지 단위 곱셈이 출력되는데 해당 코드는 아래 print(j,'x',i,'=', j*i, end='\t')으로 end='\t' 옵션을 넣어 단위 곱셈 간 간격을 탭(Tab)으로 구분하였습니다.

한 행을 출력하는 j 반복문이 다 돌면 print()(=print('\n')) 함수가 줄바꿈을 수행하고 j+1의 값으로 두번째 행이 채워지게 됩니다. 해당 반복을 range() 함수가 끝날때까지 반복하게 되면 원하던 가로형태의 구구단 출력을 얻게 됩니다.

Python 코드 및 결과

for i in range(1, 10):
    for j in range(2, 10):
        print(j,'x',i,'=', j*i, end='\t')
    print()

▲ 구구단 가로 출력 결과

range(start, end)?
Python에서 range 함수의 end는 카운트 되는 숫자에 포함되지 않습니다. 따라서 이번 설명에서 필요로 하는 9까지의 출력값을 얻기 위해 end값을 10으로 지정하였습니다.

4. 마무리

이번 포스트에서는 Python을 이용하여 구구단을 가로로 출력하는 방법를 소개하였습니다. 기본 구구단을 마스터 하신 분들도 해당 문제를 풀이하시려면 많은 고민을 하게 되실 겁니다. 원하는 결과를 얻기위한 코드 설계는 프로그래머의 기본 자질이며 다양한 응용 문제를 풀이하시며 역량을 쌓아나가시면 후에 성장을 위한 기반이 될 것입니다.

5. 연관링크

[1] [Python] 사용자에게 숫자를 입력받아 구구단 계산 결과 출력하기 (2-9단)

banner-request-analysis