4615. 재미있는 오셀로 게임

2023. 8. 28. 10:32·swea

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWQmA4uK8ygDFAXj&categoryId=AWQmA4uK8ygDFAXj&categoryType=CODE&problemTitle=%EC%98%A4%EC%85%80%EB%A1%9C&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

T = int(input())
for tc in range(1, T + 1):
    N, M = map(int, input().split())
    arr = [[0] * (N + 1) for _ in range(N + 1)] # 보드 빈자리 0으로 채우기
    m = N // 2
    arr[m][m] = arr[m + 1][m + 1] = 2  # 처음 세팅
    arr[m][m + 1] = arr[m + 1][m] = 1
 
    for _ in range(M):
        si, sj, color = map(int, input().split())
        arr[si][sj] = color  # 맨처음 배치
        for di, dj in ((1, 0), (0, 1), (-1, 0), (0, -1), (1, -1), (1, 1), (-1, -1), (-1, 1)):
            rst = []
            for k in range(1, N):
                ni, nj = si + di * k, sj + dj * k
                if 1 <= ni <= N and 1 <= nj <= N:
                    if arr[ni][nj] == 0:  # 쭉 탐색하다 0이 나오면 정지
                        break
                    elif arr[ni][nj] == color:  # 본인색이 나오면 
                        while rst:  # 사이에 상대색이 있으면? 모두 본인색이 될 때까지
                            ti, tj = rst.pop()  # 그걸 빼고
                            arr[ti][tj] = color # 본인색으로 바꾸기
                        break
                    else:
                        rst.append((ni, nj)) # 상대색이 나오면 rst에 저장
                else:
                    break
    black = 0
    white = 0
 
    for lst in arr:  # 전체에서 해당 색 각각 카운트
        black += lst.count(1)
        white += lst.count(2)
    print(f'#{tc} {black} {white}')
저작자표시 (새창열림)

'swea' 카테고리의 다른 글

2117. [모의 SW 역량테스트] 홈 방범 서비스  (0) 2023.08.28
4408. 자기 방으로 돌아가기  (0) 2023.08.28
5356. 의석이의 세로로 말해요  (0) 2023.08.28
6190. 정곤이의 단조 증가하는 수  (0) 2023.08.28
3499. 퍼펙트 셔플  (0) 2023.08.28
'swea' 카테고리의 다른 글
  • 2117. [모의 SW 역량테스트] 홈 방범 서비스
  • 4408. 자기 방으로 돌아가기
  • 5356. 의석이의 세로로 말해요
  • 6190. 정곤이의 단조 증가하는 수
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (381)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (1)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    개발자취업
    항해99
    코딩테스트준비
    99클럽
    Til
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
4615. 재미있는 오셀로 게임
상단으로

티스토리툴바