반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
주의해야 할 점
리스트의 실제 인덱스는 0부터 시작합니다.
그런데 문제에서 흰 돌을 놓을 좌표는 자연수로 표현합니다. 즉, 1부터 시작합니다.
이것에 주의해서 흰 돌을 놓을 좌표를 바둑판에서 찾아야 합니다.
생각한 풀이 과정
- 첫 줄에 바둑판에 올려 놓을 흰 돌의 개수 n을 입력합니다. 정수형으로 변환하고 변수 n에 넣어줍니다.
- 아직 흰 돌을 하나도 놓은 상태가 아닌 바둑판, 즉, 모든 값이 0으로 초기화된 19 x 19 바둑판을 2차원 리스트로 만들어줍니다. 2차원 리스트 변수 이름을 go_board로 지어줍니다.
- 둘째 줄부터 n+1번째 줄까지 흰 돌을 놓을 좌표 (x, y)를 n줄 입력해야합니다. 그래서 n번 반복하는 반복문을 만들어줍니다.
- 흰 돌을 놓을 좌표 x, y를 공백을 두고 입력합니다. 각각 정수형으로 변환하고, x, y 변수에 넣어줍니다.
- 과정 2에서 만든 바둑판에서 과정 4에 입력한 x, y 좌표에 해당하는 값을 1로 변경합니다.
- 과정 4 ~ 과정 5를 n번만큼 반복합니다.
- 반복문이 끝나고 나면, 흰 돌이 올려진 바둑판의 상황을 출력 형식에 맞게 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 첫 줄에 바둑판에 올려 놓을 흰 돌의 개수 n을 입력합니다.
# 정수형으로 변환합니다.
n = int(stdin.readline())
# 아직 흰 돌을 놓은 상태가 아닌 상태,
# 즉, 모든 값이 0인 19x19 바둑판을 저장하는 2차원 리스트 변수를 선언합니다.
go_board = [[0 for j in range(19)] for i in range(19)]
# 흰 돌의 개수 n만큼 반복합니다.
for _ in range(n):
# 흰 돌을 놓을 좌표 x, y를 공백을 두고 입력합니다.
# 각각 정수형으로 변환합니다.
x, y = map(int, stdin.readline().split())
# 바둑판의 해당 좌표에 흰 돌을 놓았으므로, 해당 좌표의 값을 1로 변경합니다.
go_board[x-1][y-1] = 1
# 바둑판의 상황을 출력하는 반복문을 만듭니다.
for i in range(19):
for j in range(19):
# 바둑판에서 한 가로줄의 상황을 공백으로 구분해 출력합니다.
print(go_board[i][j], end=' ')
# 한 가로줄의 상황이 모두 출력되면 다음 가로줄의 상황을 출력하기 위해 다음 줄로 넘어갑니다.
print()
제출 결과
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글