• Home
  • About
    • Yerim Oh photo

      Yerim Oh

      Happy and worthwhile day by day :)

    • Learn More
    • Email
    • LinkedIn
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects

[1008] (파이썬) CODE TREE_Lv.2 Novis mid: 숫자 직사각형

23 Jan 2020

Reading time ~2 minutes

Table of Contents
  • 풀기 전 알고갈 개념
    • 새로운 2차원 배열 선언과 활용
      • 1) 0으로 초기화된 배열 만들기
  • 문제
    • 입력 형식
    • 출력 형식
    • 입출력 예제
    • 풀이
      • overview
    • 결과

풀기 전 알고갈 개념

새로운 2차원 배열 선언과 활용

전부 0으로 초기화된 2차원 배열 만들기

  • n * m 크기의 격자 초기화

1) 0으로 초기화된 배열 만들기

  • list comprehension이용
n, m = 4, 5
arr_2d = [
    [0 for _ in range(m)]
    for _ in range(n)
]

output

print(arr_2d)

>> 출력 결과
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
  • range 함수 이용
n = 4
arr_2d = [[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
for i in range(n):
    for j in range(n):
        print(arr_2d[i][j], end=" ")
    print()

output

print(arr_2d)

>> 출력 결과
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

문제

[숫자 직사각형]
풀러 가기

정수 n과 m의 값을 입력받아 숫자로 이루어진 직사각형을 출력하는 프로그램을 아래 예를 참고하여 작성해보세요.
단, 2차원 배열을 꼭 사용하여 해결해보세요.

예)

n에 3을 m에 5를 입력받는 경우

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

입력 형식

첫 번째 줄에 세로변의 길이 n과, 가로변의 길이 m이 공백을 사이에 두고 주어집니다.

  • 1 ≤ n, m ≤ 100

출력 형식

주어지는 n과 m의 값에 따른 숫자를 입출력 예제와 같이 출력합니다.

Constraints:
시간 제한: 1000ms
메모리 제한: 80MB

입출력 예제

입력:
4 3

출력: 
1 2 3
4 5 6
7 8 9
10 11 12
입력:
5 5

출력: 
0 9 10 19 20 
1 8 11 18 21 
2 7 12 17 22 
3 6 13 16 23 
4 5 14 15 24

풀이

위의 개념 그대로 쓰면 됌

n, m = tuple(map(int, input().split()))
arr_2d = [
    [0 for _ in range(m)]
    for _ in range(n)
]


count = 1
for row in range(n):
    for col in range(m):
        arr_2d[row][col] = count 
        count +=1

    
for row in range(n):
    for col in range(m):
        print(arr_2d[row][col], end = ' ')
    print()

    

overview

20210804_074920930


결과

image 쨔쨘



Coding test Share Tweet +1