프로그래머스 야간 전술보행 (파이썬, python3)

진이·2022년 11월 19일
0

파이썬

목록 보기
3/7

1.문제요약

요약하자면 화랑이 감시구간에 진입했을 때 경비가 근무 중인가 휴식 중인가를 판단하면 끝인 문제이다.
화랑이 지나가야 하는 길을 road라는 리스트로 표현했을 때 감시 구간에 경비의 인덱스를 넣어주면 편하게 찾아낼 수 있다. 나머지 road의 요소는 음수로 설정해놓기에 인덱스와 구분이 가능하다.

2.코드

def solution(distance, scope, times):
    hw_pos = 0
    road = [-1] * (distance + 1)
    idx = 0
    
    for x,y in scope:
        big = max(x, y)
        small = min(x, y)
        road[small : big + 1] = [idx] * (big - small + 1)
        idx += 1
        
    while True:
        if road[hw_pos] >= 0:
            k,v = times[road[hw_pos]]
            flag = hw_pos % (k + v)
            if 0 < flag <= k:
                break
        if hw_pos == distance:
            break
        hw_pos += 1
        
    return hw_pos
profile
최선을 다할게

0개의 댓글