프로그래밍/Python

[Codeup 2차원배열연습-2] 1468 ~ 1475

mhko411 2021. 1. 13. 21:28
728x90

- 1468

다음과 같은 n*n 배열 구조를 출력하기
입력이 3인 경우 다음과 같이 출력한다.
1 2 3
6 5 4
7 8 9

n=int(input())
number=[[0 for _ in range(100)]for _ in range(100)]

flag=True
cnt=1

for y in range(n):
    if flag:
        for x in range(n):
            number[y][x]=cnt
            cnt+=1
        flag=False
    else:
        for x in reversed(range(n)):
            number[y][x]=cnt
            cnt+=1
        flag=True

for y in range(n):
    for x in range(n):
        print(number[y][x],end=" ")
    print()

=> 방향을 상황에 맞게 바꾸기위한 flag를 선언하여 풀었다.


- 1469

다음과 같은 n*n 배열 구조를 출력하기
입력이 3인 경우 다음과 같이 출력한다.
3 2 1
4 5 6
9 8 7

n=int(input())
number=[[0 for _ in range(100)]for _ in range(100)]

flag=False
cnt=1

for y in range(n):
    if flag:
        for x in range(n):
            number[y][x]=cnt
            cnt+=1
        flag=False
    else:
        for x in reversed(range(n)):
            number[y][x]=cnt
            cnt+=1
        flag=True

for y in range(n):
    for x in range(n):
        print(number[y][x],end=" ")
    print()

- 1470

다음과 같은 n*n 배열 구조를 출력하기
입력이 3인 경우 다음과 같이 출력한다.
1 6 7
2 5 8
3 4 9

n=int(input())
number=[[0 for _ in range(100)]for _ in range(100)]

flag=True
cnt=1

for x in range(n):
    if flag:
        for y in range(n):
            number[y][x]=cnt
            cnt+=1
        flag=False
    else:
        for y in reversed(range(n)):
            number[y][x]=cnt
            cnt+=1
        flag=True



for y in range(n):
    for x in range(n):
        print(number[y][x],end=" ")
    print()

- 1471

다음과 같은 n*n 배열 구조를 출력하기
입력이 3인 경우 다음과 같이 출력한다.
3 4 9
2 5 8
1 6 7

n=int(input())
number=[[0 for _ in range(100)]for _ in range(100)]

flag=False
cnt=1

for x in range(n):
    if flag:
        for y in range(n):
            number[y][x]=cnt
            cnt+=1
        flag=False
    else:
        for y in reversed(range(n)):
            number[y][x]=cnt
            cnt+=1
        flag=True



for y in range(n):
    for x in range(n):
        print(number[y][x],end=" ")
    print()

- 1472

다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
12 11 10 9
5 6 7 8
4 3 2 1

'''
12 11 10 9
5 6 7 8
4 3 2 1
'''
n,m=map(int,input().split())
number=[[0 for _ in range(100)]for _ in range(100)]

flag=True
cnt=1

for y in reversed(range(n)):
    if flag:
        for x in reversed(range(m)):
            number[y][x]=cnt
            cnt+=1
        flag=False
    else:
        for x in range(m):
            number[y][x]=cnt
            cnt+=1
        flag=True

for y in range(n):
    for x in range(m):
        print(number[y][x],end=" ")
    print()

- 1473

다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
9 10 11 12
8 7 6 5
1 2 3 4

'''
9 10 11 12
8 7 6 5
1 2 3 4
'''
n,m=map(int,input().split())
number=[[0 for _ in range(100)]for _ in range(100)]

flag=False
cnt=1

for y in reversed(range(n)):
    if flag:
        for x in reversed(range(m)):
            number[y][x]=cnt
            cnt+=1
        flag=False
    else:
        for x in range(m):
            number[y][x]=cnt
            cnt+=1
        flag=True

for y in range(n):
    for x in range(m):
        print(number[y][x],end=" ")
    print()

- 1474

다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
10 9 4 3
11 8 5 2
12 7 6 1

'''
10 9 4 3
11 8 5 2
12 7 6 1
'''
n,m=map(int,input().split())
number=[[0 for _ in range(100)]for _ in range(100)]

flag=True
cnt=1

for x in reversed(range(m)):
    if flag:
        for y in reversed(range(n)):
            number[y][x]=cnt
            cnt+=1
        flag=False
    else:
        for y in range(n):
            number[y][x]=cnt
            cnt+=1
        flag=True


for y in range(n):
    for x in range(m):
        print(number[y][x],end=" ")
    print()

- 1475

다음과 같은 n*m 배열 구조를 출력하기
입력이 3 4인 경우 다음과 같이 출력한다.
12 7 6 1
11 8 5 2
10 9 4 3

'''
12 7 6 1
11 8 5 2
10 9 4 3
'''
n,m=map(int,input().split())
number=[[0 for _ in range(100)]for _ in range(100)]

flag=False
cnt=1

for x in reversed(range(m)):
    if flag:
        for y in reversed(range(n)):
            number[y][x]=cnt
            cnt+=1
        flag=False
    else:
        for y in range(n):
            number[y][x]=cnt
            cnt+=1
        flag=True


for y in range(n):
    for x in range(m):
        print(number[y][x],end=" ")
    print()

 

 

※ 문제를 풀 때 어떻게 출력되는지 확인하면서 푸는 것보다 코드를 작성하고 이 코드가 어떻게 나올지 머리로 생각 후 수정하는 것이 더 도움이 되는 것 같습니다.