문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

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

•시간제한: 1.000 S •메모리제한: 128 MB •제출: 20 •통과: 14 •만든사람: suakii

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

시간 1.000s · 메모리 128MB · 제출 20 · 정답 14

문제 설명

본 문제는 python 의 빠른 기초 학습을 위해 설계된 문제로서 python 코드 제출을 기준으로 설명되어 있습니다.
------
기숙사 생활을 하는 학교를 다니는 영일이는 어떤 금요일에 집으로 귀가를 했다.
오랜만에 집에 간 영일이는 친구와 함께 하던 매우 큰 판의 오목에 대해서 생각해보다가 "바둑 프로그램을 만들어 볼까?"라는 생각을 하게 되었다.
$19 \times 19$ 크기의 바둑판에 $n$개의 흰 돌을 놓았을 때, 바둑판의 상태를 출력해 보자.


아래의 예시 코드를 읽고, 이해한 후 도전해 보자.

예시 코드
d = []                     # 빈 리스트 만들기
for i in range(20):
    d.append([])           # 리스트 내부에 빈 리스트 추가하여 2차원 리스트 구조 생성
    for j in range(20):
        d[i].append(0)     # 각 리스트 내부에 0 추가 (20 x 20 크기의 0으로 채워진 판)

n = int(input())
for i in range(n):
    x, y = input().split()
    d[int(x)][int(y)] = 1  # 입력받은 좌표 위치의 값을 1로 변경

for i in range(1, 20):
    for j in range(1, 20):
        print(d[i][j], end=' ') # 각 줄의 바둑판 상태 출력
    print()                     # 줄 바꿈

참고
리스트 안에 다른 리스트를 넣어 만들면 가로 번호와 세로 번호를 사용하는 2차원 형태의 데이터를 저장해 사용할 수 있습니다.
이름[세로번호][가로번호] 형식으로 리스트에 저장되어 있는 값을 읽거나 쓸 수 있습니다.

2차원 리스트를 생성하는 다양한 방법
1. 반복문을 이용한 방법
d = []
for i in range(20):
    d.append([])
    for j in range(20):
        d[i].append(0)

2. 리스트 컴프리헨션(List Comprehensions)을 이용한 방법 (추천)
# 20 x 20 크기의 0으로 채워진 2차원 리스트 생성
d = [[0 for j in range(20)] for i in range(20)]
[0 for j in range(20)] 부분이 0이 20개 들어있는 리스트 [0, 0, 0, ..., 0]를 생성하고, 이를 바깥쪽 리스트 컴프리헨션을 통해 20번 반복하여 2차원 구조를 만듭니다.

[f-string 출력 참고]
print(f"{d[i][j]}", end=' ')

입력 설명

첫 번째 줄에 흰 돌의 개수($n$)가 입력된다.
두 번째 줄부터 $n$줄에 걸쳐서, 흰 돌을 놓는 좌표($x$, $y$)가 스페이스로 분리되어 한 줄씩 입력된다.
($0 \le n \le 10$, $1 \le x, y \le 19$, 똑같은 좌표($x$, $y$)는 다시 입력되지 않는다.)

출력 설명

바둑판의 상태를 출력한다.
(흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력한다.)

입력 예시
COPY
복사되었습니다!

5
1 1
2 2
3 3
4 4
5 5

출력 예시
COPY
복사되었습니다!

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

도움

기초100제(py) v0.85 : 정보교사 커뮤니티 @컴퓨터과학사랑(CSL)
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.

[원작자: 전현석, 최문성(확인), 이준용(확인), 김지혜(그림) (2020)]

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘