프로그래밍 문제 풀이/코드업(파이썬)

코드업[CodeUp] Python 기초 100제 [6095번]

태은코딩 2024. 2. 1. 10:31

6095 : [기초-리스트] 바둑판에 흰 돌 놓기(설명)(py)

문제설명
기숙사 생활을 하는 학교에서 어떤 금요일(전원 귀가일)에는 모두 집으로 귀가를 한다.

오랜만에 집에 간 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가
"바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다.

바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때,
n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자.

 

입력값
바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다.
둘째 줄 부터 n+1 번째 줄까지 힌 돌을 놓을 좌표(x, y)가 n줄 입력된다.
n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 똑같은 좌표는 입력되지 않는다.
출력값
흰 돌이 올려진 바둑판의 상황을 출력한다.
흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력한다.

 

입력 예시
5
1 1
2 2
3 3
4 4
5 5
출력 예시
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

 

정답 및 가능한 정답

badook=[]
for i in range(20):
    line=[]
    for j in range(20):
        line.append(0)
    badook.append(line)
n=int(input())
for i in range(n):
    a,b=map(int,input().split())
    badook[a][b]=1
for i in range(1,20):
    for j in range(1,20):
        print(badook[i][j],end=" ")
    print()

 

해설

먼저 바둑판을 생성해 보자
badook=[]
for i in range(20):
    line=[]
    for j in range(20):
        line.append(0)
    badook.append(line)
2차원 리스트를 생성할 때는 다음과 같이 만들 수 있다.

그 다음 흰돌의 갯수 n과 흰돌이 놓일 좌표들을 설정해야 한다.
입력받은 좌표들은 모두 1로 바꾸어야 하니 for문 안에서 좌표를 입력받아 각각 1로 바꾸는 실행을 한다.
n=int(input())
for i in range(n):
    a,b=map(int,input().split())
    badook[a][b]=1

이제 바둑판의 상황을 출력해야 한다.
2차원 리스트를 출력하는 방법은 여러가지가 있는데 range()를 사용하는 방법을 써보자
1행씩 일렬로 작성하기 위해 end=" "옵션을 사용하고 줄바꿈 하기 위해 print()를 한다. 
for i in range(1,20):
    for j in range(1,20):
        print(badook[i][j],end=" ")
    print()