개발자 톡

연습문제 톡 [HSAT 1회 정기 코딩 인증평가 기출] 안전운전을 도와줄 차세대 지능형 교통시스템

첫번째 인증평가 1번 테스트케이스 좀 부탁드립니다.

등록일
2021-09-17 16:06:20
조회수
986
작성자
ikissedagirl

부탁드립니다!

import collections

N, T = map(int, input().split())
signs = collections.defaultdict(list)
inter = {1: [[-1, 0], [0, 1], [1, 0]], 2: [[0, -1], [0, 1], [-1, 0]], 3: [[-1, 0], [0, -1], [1, 0]],\
           4: [[0, -1], [0, 1], [1, 0]], 5: [[0, 1], [-1, 0]], 6: [[-1, 0], [0, -1]], 7: [[1, 0], [0, -1]],\
           8: [[1, 0], [0, 1]], 9: [[1, 0], [0, 1]], 10: [[-1, 0], [0, 1]], 11: [[-1, 0], [0, -1]],\
           12: [[1, 0], [0, -1]]}
for i in range(N):
    for j in range(N):
        signs[i, j].extend(list(map(int, input().split())))
stack = []
stack.append([[0, 0], 0])

result = []

def is_not_out(index):
    if index[0]<0 or index[0]>(N-1) or index[1]<0 or index[1]>(N-1):
        return False
    else :
        return True
check = set()
while stack:
    [tmp, time] = stack.pop()
    check.add(tuple([tmp[0], tmp[1], time%4]))
    result.append(tuple(tmp))
    op = inter[signs[tuple(tmp)][time%4]]
    for i in op:
        cur = [tmp[0]+i[0], tmp[1]+i[1]]
        if is_not_out(cur) and (time+1) <= T and (tuple([cur[0], cur[1], (time+1)%4]) not in check):
            stack.append([cur, time+1])

print(len(set(result)))



#[hsat_1회_정기_코딩_인증평가_기출]_안전운전을_도와줄_차세대_지능형_교통시스템
#python
#인증평가

이 카테고리의 톡 더보기