프로그래밍/Python

[Codeup 2차원배열연습-3] 1476 ~ 1483

mhko411 2021. 1. 13. 22:16
728x90

먼저 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차원 배열 연습 마무리