구구단을 이차원 배열로 출력해보자

아오 티스토리에 왜이렇게 뻘댓글이 많은지… ㅡㅡ 심지어 내가 달지 말고 걍 가라했는데도 계속 달아서 티스토리도 스팸필터 달고 있음… 네이버는 한줄+답글이지만 티스토리는 한명이 서너개 두두두두 달고 갑니다. 하지 말라면 좀 하지 말라고…

생각해봅시다. 반복문 하면서 제일 만만한게 구구단인데, 이거 보통

for i in range(2,10):
for j in range(2,10):
print('{} * {} = {}'.format(i, j, i * j))

이렇게 하잖아요? 그래서 저거 실행하면 2 * 2 = 4 이런 식으로 줄줄이 뜨잖음. 그러니까, 한 줄로요. 이걸 이차원 배열… 그러니까 표로 출력할거다. 상당히 간단한 절차이니 걍 보고 따라해보자.


gugudan_array = [['*' for i in range(2,10)] for j in range(2,10)]

print(gugudan_array)

일단 이렇게 하면 이차원 배열을 만들 수 있다. 그런데 이대로 출력하면 안에 애스터리스크만 들어있는 이차원 배열이 나온다. 그러면 안에 값은 어떻게 채우냐고?

gugudan_array = [[i * j for i in range(2,10)] for j in range(2,10)]

print(gugudan_array)

그냥 이렇게 하면 된다. 근데 저대로 출력하면 1차원 배열들이 그냥 줄줄이 성의없이 나오는데… 스읍… 이거 어떻게 안될까요?

gugudan_array = [[i * j for i in range(2,10)] for j in range(2,10)]

for k in gugudan_array:
print(k)

해드렸습니다^^

import sys
gugu_range = int(sys.stdin.readline())

gugudan_array = [[i * j for i in range(1,gugu_range+1)] for j in range(1,gugu_range+1)]

for k in gugudan_array:
print(k)

이렇게 하면 9까지 안 하고 11단 12단 이렇게도 할 수 있다. 근데… 생각해보니 저 괄호 있잖아… 아예 걍 떼버리고 싶지 않음?

import sys
gugu_range = int(sys.stdin.readline())

gugudan_array = [[i * j for i in range(1,gugu_range+1)] for j in range(1,gugu_range+1)]

for x in range(gugu_range):
for y in range(gugu_range):
print(gugudan_array[x][y], end=" ")
print()

여기서 더 이쁘게 뽑고 싶다면 그건 판다스를 섭외하거나 엑셀로 가셔야 함…