홍우진의 개발 일기장

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

알고리즘/백준

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

홍우진 2022. 8. 22. 23:49
728x90
반응형

문제 링크


https://www.acmicpc.net/problem/1059

풀이 코드


L = int(input())
S = list(map(int,input().split()))
n = int(input())

S.sort()

if n in S:
    print(0)
else:
    min = 0
    max = 0
    for num in S:           
        if num < n:     
            min = num
        elif num > n and max == 0:
            max = num
    max -= 1                 
    min += 1
    print((n-min)*(max-n+1) + (max-n))

코드 해석


(n보다 작은 수의 개수) * (n을 포함한 n보다 큰 수의 개수) + (n보다 큰 수의 개수) 라는 규칙을 적용한다.

먼저 수를 받은 후 리스트에 저장한다.

만약 리스트 안에 n이 포함되어있다면 0을 출력하여준다.

n과 가까운 두 수를 구해준 뒤 자신의 값들을 빼준다.

그 후 공식을 적용하여준다.

728x90
반응형
Comments