코드업 기초 100제 문제 096
# 바둑판에 흰 돌 놓기
# 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가 "바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다.
# 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자.
# 입력
# 바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다.
# 둘째 줄 부터 n+1 번째 줄까지 흰 돌을 놓을 좌표(x, y)가 n줄 입력된다.
# n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 같은 좌표는 입력되지 않는다.
# 5
# 1 1
# 2 2
# 3 3
# 4 4
# 5 5
# 출력
# 흰 돌이 올려진 바둑판의 상황을 출력한다.
# 흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력한다.
# 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
소스
더보기
import numpy as np
n = int(input())
board = np.zeros((19, 19), dtype=int)
# board = [[0 for _ in range(19)] for _ in rnage(19)]
for _ in range(n):
x, y = map(int, input().split())
board[x-1][y-1] = 1
for brd in board:
print(*brd)
이문제는 입력을 통해 문자들을 여러 번 출력하여 특정 문양을 만들라고 하는 문제입니다. 간단히 모양만 출력하는 문제는 2중 반복문과 출력 함수로 표현할 수 있지만 이렇게 입력을 통해 문양을 변형하여 서로 다른 문양을 만들 때에는 이중 배열을 쓰는 것이 좋습니다.
좌표계인 board를 만드는 과정중 numpy라는 모듈을 사용합니다. 이 모듈은 행렬 연산을 더욱 쉽게 사용하기 위한 모듈입니다.
https://blog.naver.com/dnfla420/221752730611
이렇게 좌표를 모든 좌표를 0으로 초기화를 해주게 되면 좌표를 받아 해당 좌표를 좌표계의 인데스에 매칭 하여 문양을 만들어주고 for문으로 첫 번째 인댁스로만 돌아가는 리스트의 값을 받아 아스트릭( '*' )으로 언패킹 해주면 한 줄씩 리스트를 출력해줄 수 있습니다.
'파이썬 > 코트업 기초 100제' 카테고리의 다른 글
코드업 기초 100제 문제 097 (0) | 2022.02.08 |
---|---|
코드업 기초 100제 문제 096 보너스 (0) | 2022.02.08 |
코드업 기초 100제 문제 095 (0) | 2022.02.07 |
코드업 기초 100제 문제 094 (0) | 2022.02.07 |
코드업 기초 100제 문제 093 (0) | 2022.02.07 |