문제
입력
바둑알이 깔려 있는 상황이 19 * 19 크기의 정수값으로 입력된다.
십자 뒤집기 횟수(n)가 입력된다.
십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다.
출력
십자 뒤집기 결과를 출력한다.
코드
d = []
for i in range(19):
a = list(map(int, input().split()))
d.append(a)
n = int(input())
for i in range(n):
x, y = input().split()
x, y = int(x), int(y)
for j in range(19):
if d[x-1][j] == 0: #행
d[x-1][j] = 1
else:
d[x-1][j] = 0
if d[j][y-1] == 0: #열
d[j][y-1] = 1
else:
d[j][y-1] = 0
for i in range(19):
for j in range(19):
print(d[i][j], end = ' ')
print()
d라는 리스트를 만들어 바둑판으로 사용할 2차원 리스트를 생성한다.
a라는 변수를 사용해 입력한 숫자들을 리스트 형태로 받아 그대로 d리스트에 넣어 2차원 리스트를 생성한다.
n 변수에 몇 번의 뒤집기를 반복할 것인지의 횟수를 입력받는다.
n만큼의 for문을 돌릴 것이다.
x와 y의 변수를 받아 몇 번째 줄의 바둑알들을 뒤집을지 입력받는다.
for문과 if문을 사용해 해당 줄의 바둑알을 뒤집어준다.
이중 for문을 통해 보기 좋게 출력시킨다.
주의할 것! (제가 실수하거나 놓쳤던 부분들)
- 자료형 유의할 것
- x, y 값과 2차원 리스트의 행과 열 관계를 명확히 이해할 것
- 1~19줄까지의 바둑판과 인덱스 0부터 시작하는 리스트의 번호 관계를 잘 이해할 것
a = []
for i in range(5):
b = list(map(int, input().split()))
a.append(b)
print("-"*50)
print(a[1][2])
print(a[2][1])
위와 같은 코드를 통해 2차원 리스트에서 앞부분에 해당하는 숫자가 행, 가로줄
뒷부분에 해당하는 숫자가 열, 세로줄에 해당하는 것을 확인했다.
개인적으로 헷갈리는 부분이였기에 짚고 넘어감
'Study > Python' 카테고리의 다른 글
[python]assert 가정 설정문 (0) | 2022.10.10 |
---|---|
[python][CodeUp]Python 기초 100제 - 97번 (0) | 2022.04.24 |
[python][CodeUp]Python 기초 100제 - 95번 (0) | 2022.04.24 |
[python][CodeUp]Python 기초 100제 - 74번 (0) | 2022.04.24 |
[python][CodeUp]Python 기초 100제 - 64번 (0) | 2022.04.23 |