[코드트리] 시뮬레이션 - 최고의 33위치

김멉덥·2024년 3월 19일
0

알고리즘 공부

목록 보기
130/171
post-thumbnail
post-custom-banner

코드트리 학습하기 - 알고리즘 입문 : 시뮬레이션

Code

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

max_coin = 0

# 3*3 크기만큼 탐색하여 해당하는 값을 coin 리스트에 담는 함수
def get_coin(row_s, col_s, row_e, col_e):
    coin = []
    for row in range(row_s, row_e+1):
        for col in range(col_s, col_e+1):
            coin.append(matrix[row][col])
    return coin

# 모든 격자를 돌며 범위 내의 3*3 격자 찾아서 동전 카운트
for i in range(N):
    for j in range(N):

        if(i+2 >= N or j+2 >= N):
            continue

        coin_list = get_coin(i, j, i+2, j+2)
        curr_coin = coin_list.count(1)

        if(max_coin < curr_coin):
            max_coin = curr_coin

        # print(coin_list)

print(max_coin)

풀이 및 해설

  • 전체 격자 내에서 3*3 크기의 [row][col] 좌표 내의 값을 모두 리스트에 담고 → 1을 카운트 하여 → 최대의 1 값을 찾기 (max함수 써도 됐을듯)
  • i, j 가 들어가있는 for문은 전체 배열 탐색용 / row, col 가 들어가있는 for문은 3*3 격자 탐색용
  • get_coin 이라는 함수를 만들어서 해결
    • row의 시작값, row의 끝값, col의 시작값, col의 끝값 을 모두 넣어서 2중 for문으로 값을 찾아 coin 리스트에 넣어주기

주의할 점 !

  • 격자 탐색에서 인덱스 범위 잘 챙기기
  • row, col 헷갈리지 않기
profile
데굴데굴 뚝딱뚝딱 개발기록
post-custom-banner

0개의 댓글