1406: [기초-리스트] 바둑판에 흰 돌 놓기(설명)(py)
[만든사람 : 전현석, 최문성(확인), 이준용(확인), 김지혜(그림) (2020)]
문제 설명
본 문제는 python 의 빠른 기초 학습을 위해 설계된 문제로서 python 코드 제출을 기준으로 설명되어 있습니다.
------
기숙사 생활을 하는 학교를 다니는 영일이는 어떤 금요일에 집으로 귀가를 했다.
오랜만에 집에 간 영일이는 친구와 함께 하던 매우 큰 판의 오목에 대해서 생각해보다가
"바둑 프로그램을 만들어 볼까?"라는 생각을 하게 되었다.
19 * 19 크기의 바둑판에 n개의 흰 돌을 놓았을 때, 바둑판의 상태를 출력해 보자.
예시
...
d=[] #아무것도 들어있지 않은 빈 리스트 [ ] 만들기
for i in range(20) :
d.append([]) #리스트의 마지막에 다른 빈 리스트 [ ] 추가해 넣기. [ ... , [ ] ] 처럼 들어간다.
for j in range(20) :
d[i].append(0) #리스트 안에 들어있는 i번째 리스트 안에 0 추가해 넣기. [ ... , [ ... , 0] ] 처럼 들어간다.
n = int(input())
for i in range(n) :
x, y = input().split()
d[int(x)][int(y)] = 1
for i in range(1, 20) :
for j in range(1, 20) :
print(d[i][j], end=' ') #스페이스로 분리해서 한 줄로 출력
print() #줄 바꿈
...
참고
리스트 안에 다른 리스트를 넣어 만들면?
가로 번호와 세로 번호를 사용해서 2차원 형태처럼, 데이터를 저장해 사용할 수 있다.
이름[번호][번호] 형식으로, 리스트 안에 저장되어있는 값을 읽거나 쓸 수 있다.
비슷한 방법으로 n차원으로 확장시킨 리스트도 만들 수 있다.
#20 * 20 크기에 모두 0이 채워진 2차원 형태의 리스트를 만드는 코드1
...
d=[]
for i in range(20) :
d.append([])
for j in range(20) :
d[i].append(0)
...
아래와 같은 방법으로도 똑같은 구조를 만들 수 있다.
#20 * 20 크기에 모두 0이 채워진 2차원 형태의 리스트를 만드는 코드2
#이러한 리스트 생성 방식을 List Comprehensions 라고 한다.
...
d = [[0 for j in range(20)] for i in range(20)]
...
#[0 for j in range(20)] : 0이 20개 들어있는 리스트 [0, 0, 0, ... , 0, 0, 0]
------
기숙사 생활을 하는 학교를 다니는 영일이는 어떤 금요일에 집으로 귀가를 했다.
오랜만에 집에 간 영일이는 친구와 함께 하던 매우 큰 판의 오목에 대해서 생각해보다가
"바둑 프로그램을 만들어 볼까?"라는 생각을 하게 되었다.
19 * 19 크기의 바둑판에 n개의 흰 돌을 놓았을 때, 바둑판의 상태를 출력해 보자.
...
d=[] #아무것도 들어있지 않은 빈 리스트 [ ] 만들기
for i in range(20) :
d.append([]) #리스트의 마지막에 다른 빈 리스트 [ ] 추가해 넣기. [ ... , [ ] ] 처럼 들어간다.
for j in range(20) :
d[i].append(0) #리스트 안에 들어있는 i번째 리스트 안에 0 추가해 넣기. [ ... , [ ... , 0] ] 처럼 들어간다.
n = int(input())
for i in range(n) :
x, y = input().split()
d[int(x)][int(y)] = 1
for i in range(1, 20) :
for j in range(1, 20) :
print(d[i][j], end=' ') #스페이스로 분리해서 한 줄로 출력
print() #줄 바꿈
...
참고
리스트 안에 다른 리스트를 넣어 만들면?
가로 번호와 세로 번호를 사용해서 2차원 형태처럼, 데이터를 저장해 사용할 수 있다.
이름[번호][번호] 형식으로, 리스트 안에 저장되어있는 값을 읽거나 쓸 수 있다.
비슷한 방법으로 n차원으로 확장시킨 리스트도 만들 수 있다.
#20 * 20 크기에 모두 0이 채워진 2차원 형태의 리스트를 만드는 코드1
...
d=[]
for i in range(20) :
d.append([])
for j in range(20) :
d[i].append(0)
...
아래와 같은 방법으로도 똑같은 구조를 만들 수 있다.
#20 * 20 크기에 모두 0이 채워진 2차원 형태의 리스트를 만드는 코드2
#이러한 리스트 생성 방식을 List Comprehensions 라고 한다.
...
d = [[0 for j in range(20)] for i in range(20)]
...
#[0 for j in range(20)] : 0이 20개 들어있는 리스트 [0, 0, 0, ... , 0, 0, 0]
입력 설명
첫 번째 줄에 흰 돌의 개수(n)가 입력된다.
두 번째 줄부터 n줄에 걸쳐서, 흰 돌을 놓는 좌표(x, y)가 스페이스로 분리되어 한 줄씩 입력된다.
(0<=n<=10, 1<=x,y<=19, 똑같은 좌표(x,y)는 다시 입력되지 않는다.)
두 번째 줄부터 n줄에 걸쳐서, 흰 돌을 놓는 좌표(x, y)가 스페이스로 분리되어 한 줄씩 입력된다.
(0<=n<=10, 1<=x,y<=19, 똑같은 좌표(x,y)는 다시 입력되지 않는다.)
출력 설명
바둑판의 상태를 출력한다.
(흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력한다.)
(흰 돌이 있는 위치는 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)
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.