개발자 톡

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

차세대 지능형 교통시스템 반례좀 찾아주세요 ㅜㅜ

등록일
2023-05-11 20:29:53
조회수
501
작성자
sungwon4728

vs code로 넣고 디버깅하면서 돌려봐도 맞는거같은데 히든테케중에 틀리는게 꽤 많네요ㅜㅜ


import sys
from collections import deque
input = sys.stdin.readline

def bfs(row,colum,time,dir): # (행,열,시간,진입방향)
    global N,T
    dq=deque()
    dq.append((row,colum,time,dir))
    cnt=0
    while dq:
        r,c,t,d = dq.popleft()
        if not visit[r][c]:
            cnt+=1
            visit[r][c]=1
        if t>=T:
            continue
        light = roads[r*N+c][t%4]-1
        if dir!=light%4:
            continue
        for li in signal[light]:
            nr = r+move[li][0]
            nc = c+move[li][1]
            if nr<0 or nc<0 or nc>=N or nc>=N:
                continue
            dir =li
            dq.append((nr,nc,t+1,dir))

    return cnt
        
move= [(0,1),(-1,0),(0,-1),(1,0)]
#signal의 index%4 값에서 순서대로 진입하는 방향이 (오른,위,왼,아래)
signal = [(0,1,3),(0,1,2),(1,2,3),(0,2,3),(0,1),(1,2),(2,3),(3,0),(0,3),(0,1),(1,2),(2,3)]

N,T = map(int,input().split())
roads=list(list(map(int,input().split())) for _ in range(N*N))
visit=[[0]*N for _ in range(N)]
ans = bfs(0,0,0,1)

print(ans)



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

이 카테고리의 톡 더보기