알고리즘/백준
[백준] 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
반응형