
1. 문제
사각형의 높이 H와 너비 W가 주어지면 H행 W열의 사각형 모양으로 1부터 H*W까지 숫자를 차례대로 출력 하시오.
숫자가 출력되는 순서는 첫줄의 왼쪽에서 오른쪽으로 1부터 차례대로 너비 W 만큼 출력한 후
다음 줄로 바꾸어서 다시 왼쪽에서 오른쪽으로 1씩 증가하면서 출력하는 방법으로 H번 줄까지 반복한다.

2. 풀이
n = int(input())
for i in range(1, n+1):
k = list(map(int, input().split()))
q = k[1]
w = k[0] * k[1] # 6
print(f'#{i}')
print('1 ', end='')
for j in range(2, k[0]*k[1]+1):
if 1 < ((10 + j) % 10) < k[1]+1:
print(f'{j} ', end='')
elif (((10 + j) % 10) == q+1) or (((10 + j) % 10) == 1):
print(f'\n{j} ', end='')
else:
print(f'{j} ', end='')
print()
3. 해설
2022-10-24 알림
- 여러분 이 글을 요새 많이 보시던데 이 풀이 방식 파이썬 배우자마자 푼거라 좀 이상하게 풀었어요...
- 다른 분들 코드 참조해주세요....ㅠㅠ
----------------------------------------------------------------------------------------------------------------------------------------------------------
일단, 2 3, 4 5 등으로 받은 숫자를 정수화시켜 리스트에 저장한다.
리스트의 항목은 [2, 3] 등으로 저장될 것이다.
첫 번째 숫자가 세로의 길이, 두 번째 숫자가 가로의 길이.
어느 숫자건 1은 무조건 나올테니 for문 돌리기 전에 미리 숫자 1을 출력한다.
예시의 출력 결과를 보면 알겠지만, 배열된 숫자는 입력받은 숫자 두 개를 곱한 값 까지 나열된다.
이 곱한 값을 2부터 for문으로 돌려준다.
숫자를 10진법으로 표기하기 위해 조건문에 (10+j) % 10 을 추가했다. 이는 1이면 1, 11이면 1이 된다.
이 숫자가 가로의 길이를 넘어가면 한번 \n을 넣어줘야 되기 때문에 (10+j) % 10가 가로의 길이에 1을 던한값과
같거나 10이상의 숫자열이 배열될때 1이 되었을때 \n을 한번 넣어준다.
\n을 언제 넣어야되는지는
elif부분을 없애고 코드를 돌려보면 쉽게 알 수 있을 것이다.
4.
- 여러분 이 글을 요새 많이 보시던데 이 풀이 방식 파이썬 배우자마자 푼거라 좀 이상하게 풀었어요...
- 다른 분들 코드 참조해주세요....ㅠㅠ
'실습 문제' 카테고리의 다른 글
카 쉐어링 요금 계산 (파이썬) (0) | 2022.07.29 |
---|---|
두 명씩 짝을 지어보자 클래스사용 (파이썬) (0) | 2022.07.28 |
콜라츠 추측(Collatz conjecture) 변형 (파이썬) (0) | 2022.07.27 |
무엇이 중복일까 ? (파이썬) (0) | 2022.07.26 |
같은 혈액형의 사람 수를 구하라(파이썬) (0) | 2022.07.25 |