먼저 1476을 참고로 풀이방법을 간략하게 보자
1 3 6 9
2 5 8 11
4 7 10 12
위와 같이 출력이 되어야 하는데 각 자리에 값이 아닌 위치를 표기해보았다.
0, 0 |
0, 1 |
0, 2 |
0, 3 |
1, 0 |
1, 1 |
1, 2 |
1, 3 |
2, 0 |
2, 1 |
2, 2 |
2, 3 |
위의 표에서 규칙을 보면 y와 x의 좌표를 더하면 어느정도 규칙이 보이는 것을 알 수 있다. 이를 활용하여 풀어보자.
- 1476
다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
1 3 6 9
2 5 8 11
4 7 10 12
'''
1 3 6 9
2 5 8 11
4 7 10 12
'''
n,m=map(int,input().split())
numbers=[[0 for _ in range(100)] for _ in range(100)]
cnt=1
for k in range(0,n+m-1):
for x in range(m):
for y in range(n):
if y+x==k:
numbers[y][x]=cnt
cnt+=1
for y in range(n):
for x in range(m):
print(numbers[y][x],end=" ")
print()
- 1477
다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
1 2 4 7
3 5 8 10
6 9 11 12
'''
1 3 6 9
2 5 8 11
4 7 10 12
'''
n,m=map(int,input().split())
numbers=[[0 for _ in range(100)] for _ in range(100)]
cnt=1
for k in range(0,n+m-1):
for y in range(n):
for x in range(m):
if y+x==k:
numbers[y][x]=cnt
cnt+=1
for y in range(n):
for x in range(m):
print(numbers[y][x],end=" ")
print()
- 1478
다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
7 4 2 1
10 8 5 3
12 11 9 6
'''
7 4 2 1
10 8 5 3
12 11 9 6
'''
n,m=map(int,input().split())
numbers=[[0 for _ in range(100)] for _ in range(100)]
cnt=1
for k in range(0,n+m-1):
for y in range(n):
for x in reversed(range(m)):
if y+(m-1-x)==k:
numbers[y][x]=cnt
cnt+=1
for y in range(n):
for x in range(m):
print(numbers[y][x],end=" ")
print()
- 1479
다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
9 6 3 1
11 8 5 2
12 10 7 4
'''
9 6 3 1
11 8 5 2
12 10 7 4
'''
n,m=map(int,input().split())
numbers=[[0 for _ in range(100)] for _ in range(100)]
cnt=1
for k in range(0,n+m-1):
for x in reversed(range(m)):
for y in range(n):
if y+(m-1-x)==k:
numbers[y][x]=cnt
cnt+=1
for y in range(n):
for x in range(m):
print(numbers[y][x],end=" ")
print()
- 1480
다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
12 10 7 4
11 8 5 2
9 6 3 1
'''
12 10 7 4
11 8 5 2
9 6 3 1
'''
n,m=map(int,input().split())
numbers=[[0 for _ in range(100)] for _ in range(100)]
cnt=1
for k in reversed(range(0,n+m-1)):
for x in reversed(range(m)):
for y in reversed(range(n)):
if y+x==k:
numbers[y][x]=cnt
cnt+=1
for y in range(n):
for x in range(m):
print(numbers[y][x],end=" ")
print()
- 1481
다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
12 11 9 6
10 8 5 3
7 4 2 1
'''
12 11 9 6
10 8 5 3
7 4 2 1
'''
n,m=map(int,input().split())
numbers=[[0 for _ in range(100)] for _ in range(100)]
cnt=1
for k in reversed(range(0,n+m-1)):
for y in reversed(range(n)):
for x in reversed(range(m)):
if y+x==k:
numbers[y][x]=cnt
cnt+=1
for y in range(n):
for x in range(m):
print(numbers[y][x],end=" ")
print()
- 1482
다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
6 9 11 12
3 5 8 10
1 2 4 7
'''
6 9 11 12
3 5 8 10
1 2 4 7
'''
n,m=map(int,input().split())
numbers=[[0 for _ in range(100)] for _ in range(100)]
cnt=1
for k in reversed(range(0,n+m-1)):
for x in reversed(range(m)):
for y in range(n):
if y+(m-1-x)==k:
numbers[y][x]=cnt
cnt+=1
for y in range(n):
for x in range(m):
print(numbers[y][x],end=" ")
print()
- 1483
다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
4 7 10 12
2 5 8 11
1 3 6 9
'''
4 7 10 12
2 5 8 11
1 3 6 9
'''
n,m=map(int,input().split())
numbers=[[0 for _ in range(100)] for _ in range(100)]
cnt=1
for k in reversed(range(0,n+m-1)):
for y in range(n):
for x in reversed(range(m)):
if y+(m-1-x)==k:
numbers[y][x]=cnt
cnt+=1
for y in range(n):
for x in range(m):
print(numbers[y][x],end=" ")
print()
※ Python 2차원 배열 연습 마무리
'프로그래밍 > Python' 카테고리의 다른 글
[Codeup 재귀함수 연습] 1901 1902 1904 1905 1912 (0) | 2021.01.19 |
---|---|
[Codeup 함수 연습] 1548 ~ 1551, 1555 ~ 1559 (0) | 2021.01.18 |
[Codeup 2차원배열연습-2] 1468 ~ 1475 (0) | 2021.01.13 |
[Codeup 2차원배열연습-1] 1460 ~ 1467 (0) | 2021.01.11 |
[Codeup 기초100제] 1091 ~ 1099 (0) | 2021.01.10 |