개발자 톡
연습문제 톡
[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
#인증평가