본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]17266번 어두운 굴다리

by 현장 2021. 10. 24.

-코드

n = int(input())
m = int(input())
x = list(map(int, input().split()))
if m == 1:
    print(n)
else:
    height = x[0]
    for i in range(m):
        if i == m - 1:
            height2 = n - x[i]
        else:
            light_range = x[i + 1] - x[i]
            if light_range % 2:
                height2 = light_range // 2 + 1
            else:
                height2 = light_range // 2
        height = max(height, height2)
    print(height)

처음에 for문을 이용하여 높이에 따른 불빛이 비추는 범위를 더해주는 방법으로 하였으나 특정 수에서 틀린 값이 나와서 빼주는 방법이나 if문을 더 넣는 등을 해보았지만 실패를 하였습니다.

그래서 찾아보니 문제도 잘못 이해한 부분도 있었고 접근 방법은 어느 정도 맞아서 높이에 따라 빛의 범위를 더하거나 빼서 계산을 하는 것이 아닌 해당 좌표를 이용하여 하는 방법이라는 것을 알게 되어서 많이 아쉬운 문제였습니다.