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

[백준/파이썬]1059번 좋은 구간

by 현장 2021. 9. 24.

-코드

l = int(input())
s = sorted(list(map(int, input().split())))
n = int(input())
left, right = 0, 1000
flag = 1
for i in s:
    if i == n:
        flag = 0
    if i < n:
        left = max(left, i)
    if i > n:
        right = min(right, i)
if flag == 1:
    print((n - left) * (right - n) - 1)
else:
    print(0)

문제를 읽고 어떤 원리인지는 알았으나 수학 식으로 짜는 것이 많이 약해서 진행이 되지않아서 원리에 대해서 찾아서 참고하여 해결을 하였습니다.

 

참고: https://jaimemin.tistory.com/1435