본문 바로가기
알고리즘/완전탐색

[백준][Python] 1059번 좋은 구간

by 임짠짠 2022. 7. 14.
반응형
 

1059번: 좋은 구간

[9, 10], [9, 11], [9, 12], [10, 11], [10, 12]

www.acmicpc.net

 

 

코드

l = int(input())
s = list(map(int,input().split()))
n = int(input())
s.sort()

if n in s:
	print(0)
else:
	cnt = 0
	min_n = 0
	for i in s:
		if i < n:
			min_n = i
		elif i > n:
			max_n = i
			break
			
	for i in range(min_n+1,max_n-1):
		for j in range(i+1,max_n):
			if i <= n and j >= n:
				cnt += 1
	print(cnt)

 

설명

주어진 집합에서 n보다 작은 수들 중에 가장 큰 수를 min_n이라 하고 n보다 큰 수들 중에 가장 작은 수를 max_n이라고 했다.

A와 B는 min_n과 max_n 사이에 존재하고, A는 항상 n보다 작거나 같아야 하고, B는 n보다 크거나 같아야 한다.

처음에 min_n의 초기값을 지정하지 않았는데, 집합에서 만약 n보다 작은 수가 존재하지 않는 경우 오류가 났다. 이런 반례가 존재하기 때문에 min_n의 초기값을 0으로 지정해줘야 한다.

반응형

댓글