티스토리 뷰

< 문제 >

    - 바둑판에 검은돌, 흰 돌이 있을 때, 위치 x의 가로줄의 돌 색을 모두 바꾼 후, 다시 그 세로줄의 모든 돌을 바꾸는 것이다.

< 문제 푸는 방법 >

    - 2차원 배열 입력받기 ( 처음 바둑돌 판을 만들기 위해 )

    - 입력받은 값을 이용해 돌 색을 바꾸어 준다.

    - 결과를 출력한다.

 

< 코드 >

game = [list(map(int, input().split()))for _ in range(19)] #2차원 배열 입력
num = int(input()) #몇 번 뒤집을지
for i in range(num):
  a, b = map(int, input().split())
  for j in range(19):
    game[a-1][j] = (1 if game[a-1][j] == 0 else 0)
    game[j][b-1] = (1 if game[j][b-1] == 0 else 0)
for i in game:
  print (" ".join(repr(j) for j in i))

 

📌 2차원 배열 입력받는 방법

game = [list(map(int, input().split()))for _ in range(19)]

 list ( map(int, input().split()) ) for _ in range(19)

  1) map(int, input().split())

     => 자주 봤던 코드! 공백으로 나누어 입력받는데, int형으로 바꾼 map object이다.

  2) list (  )

      => 각 행은 list로 입력된다. (만약 list로 형 변환을 해주지 않으면, map object의 리스트가 된다.

  3) for _ in range(19)

      => 1번을 19번 반복하겠다는 말 ! (행을 19번 입력받을게 ~ )

  

📌 돌 색 바꾸기

for i in range(num):
  a, b = map(int, input().split())
  for j in range(19):
    game[a-1][j] = (1 if game[a-1][j] == 0 else 0)
    game[j][b-1] = (1 if game[j][b-1] == 0 else 0)

  1) for i in range(num)

    => 입력받은 num만큼 반복 !

  2) for j in range(19)

    => 바둑돌 바꾸는 과정, 삼항연산자를 이용했다.

         game[a-1][j]로 가로줄을 바꾸고, game[j][b-1]로 세로줄을 바꾼다.

 

✏️ 조금 더 간단한 방법이 있을 것 같아 더 생각해보고 싶은 문제이다 ㅠㅠ

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함