본문 바로가기

카테고리 없음

[04/05 모각코 회고]

학습

이번주는 모여서 각자 공부하고 있는 내용에 대해 공유하고 개개인의 지식을 덧붙혀 발전 가능성에 대해 모색하였다. 

 

- 김찬호 : React clean code(?), Hyperledger-fabric 사용 방법, Prompt engineering

- 안상호 : Novelty detection, python

- 임현진 : python fetch, 자율주행자동차 시뮬레이팅 방법

- 심혜린 : React clean code(?), 트랜디한 UI UX란

 

팀플

이번주 금요일에는 캡스톤 디자인 발표가 예정되어 있다. 때문에 각자의 포지션에 맞추어 테스크를 진행하였다.

중간 보고서 작성 : 안상호, 임현진

중간 발표자료 작성 : 김찬호, 심혜린

 

이번주 코테 문제 (7569 / 토마토)

 

그래프 문제의 대명사 중 하나이다. 그래프 탐색을 통해 익은 토마토를 걸러내야 한다. 

방법은 여러가지가 있겠지만, 나는 3차원 배열을 활용하여 풀 수 있었다. 다음 코드는 정답 코드이다.

 

import sys
from collections import deque

allow = [[0, -1, 0], [0, 0, 1], [0, 1, 0], [0, 0, -1], [1, 0, 0], [-1, 0, 0]]
n, m, h = map(int, sys.stdin.readline().split())
def bfs(q, graph, visit):

    while q:
        # for i in range(2):
        #     for j in range(3):
        #         print(graph[i][j])
        # print('========', q)
        
        k, i, j = q.popleft()
        if visit[k][i][j] == False:

            visit[k][i][j] = True

            for a in range(6):
                
                if 0 <= k + allow[a][0] < h and 0 <= i + allow[a][1] < m and 0 <= j + allow[a][2] < n and graph[k + allow[a][0]][i + allow[a][1]][j + allow[a][2]] == 0:
                    graph[k + allow[a][0]][i + allow[a][1]][j + allow[a][2]] = graph[k][i][j] + 1
                    q.append((k + allow[a][0], i + allow[a][1], j + allow[a][2]))

                    




graph = [[] for _ in range(h)]

count = 0

i = 0
q = deque()
for _ in range(m * h):
    tmp = list(map(int, sys.stdin.readline().split()))
    if count == m:
        count = 0
        i+=1 
    
    graph[i].append(tmp)
    for j in range(n):
        if tmp[j] == 1:
            q.append((i, len(graph[i])-1, j))
    count += 1

visit = [[[False for _ in range(n)] for _ in range(m)] for _ in range(h)]

bfs(q, graph, visit)

maxVal = 0
for k in range(h):

    for i in range(m):

        for j in range(n):

            if graph[k][i][j] == 0:
                print(-1)
                exit()
            if maxVal <= graph[k][i][j]:
                maxVal = graph[k][i][j]

if maxVal != 1:
    print(maxVal - 1)
else:
    print(0)