1096 : [기초-2차원배열] 바둑판에 흰 돌 놓기(설명)


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

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

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


참고
가로번호, 세로번호를 사용할 수 있는 2차원 배열을 사용하면
이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다.

예시
int n, i, j, x, y;
int a[20][20]={};
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d %d", &x, &y);
a[x][y]=1;
}
for(i=1; i<=19; i++) //한 줄(위에서 아래로) 씩
{
for(j=1; j<=19; j++) //한 열(왼쪽에서 오른쪽으로) 씩
{
printf("%d ", a[i][j]); //값 출력
}
printf("\n"); //줄 바꾸기
}

 

 

정답

a=input()
a=int(a)
d=[[0]*20 for j in range(20)]

for i in range(a):
    b,c=input().split(' ')
    d[int(b)][int(c)]=1

for j in range(1,20):
    for k in range(1,20):
        print(d[j][k],end=' ')
    print()

 

모범 소스

m=[]
for i in range(20) :
    m.append([])
    for j in range(20) :
        m[i].append(0)
    
n=int(input())
for i in range(n) :
    x,y=input().split()
    m[int(x)][int(y)]=1

for i in range(1, 20) :
    for j in range(1, 20) :
        print(m[i][j], end=' ')
    print()

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

+ Recent posts