[3주차 DAY02] Numpy 실습

2023. 3. 30. 16:09BOOTCAMP/프로그래머스 인공지능 데브코스

numpy 실습

지뢰 찾기

board는 10 x 10 크기를 가진 2차원의 행렬로 되어있고, 다음과 같이 동등한 크기 5 x 5를 가진 4개의 구역으로 나뉩니다.

board의 각 구역마다 지뢰를 제거해야 합니다. 지뢰는 bomb1, bomb2, bomb3, bomb4 총 4개의 종류가 있으며 각 구역에서 제거해야 될 지뢰종류가 다릅니다.

 

1 구역에서는 bomb1에 해당하는 요소만 제거합니다.

2 구역에서는 bomb2에 해당하는 요소만 제거합니다.

3 구역에서는 bomb3에 해당하는 요소만 제거합니다.

4 구역에서는 bomb4에 해당하는 요소만 제거합니다.

bomb1bomb2bomb3bomb4는 bombs에 차례대로 담겨 1차원 배열로 주어지고, 지뢰로 판단되는 요소를 0으로 변경하면 지뢰는 제거됩니다. numpy.ndarray타입의 배열로 board와 bombs가 주어졌을 때 지뢰를 제거한 후, 최종 board의 상태를 반환하는 함수를 구현하세요.

풀이

import numpy as np

def solution(board, bombs):
    # 1구역에서 bomb1 제거
    board[:5, :5][board[:5, :5] == bombs[0]] = 0
    
    # 2구역에서 bomb2 제거
    board[:5, 5:][board[:5, 5:] == bombs[1]] = 0
    
    # 3구역에서 bomb3 제거
    board[5:, :5][board[5:, :5] == bombs[2]] = 0
    
    # 4구역에서 bomb4 제거
    board[5:, 5:][board[5:, 5:] == bombs[3]] = 0
    
    return board