좋은 구간 - 1059
Category: Baekjoon
Tags: bruteforce algorithm
문제는 다음을 만족하면서 숫자 $n$을 포함하는 좋은 구간의 갯수 찾기
- $A$와 $B$는 양의 정수이고, $A < B$를 만족한다.
- $A ≤ x ≤ B$를 만족하는 모든 정수 $x$가 집합 $S$에 속하지 않는다.
시행 착오 1 🥲
먼저 두 개 구간을 나눠서 시작점이 될 수 있는 경우의 수와 끝점이 될 수 있는 경우의 수를 구한 후, 둘을 곱하는 방식으로 구현해봤다.
뒤에 $-1$을 한 이유는 시작점과 끝점이 같은 경우, 예를 들면 $(10, 10)$은 구간이 될 수 없기 때문에 제외시키기 위해서임
예제 입력을 전부 충족시켜서 맞을 줄 알았는데 20프로쯤 가다가 틀렸다고 뜬다 ,,
s = int(input())
S = list(map(int, input().split()))
n = int(input())
if n in S: # n이 배열에 이미 있는 경우
res = 0
else :
S.append(n)
S.sort()
print(S)
idx = S.index(n)
if idx == 0: # n이 첫번째 수인 경우
prev = 1
next = (S[idx + 1] - 1) - n + 1
elif idx == len(S)-1: # n이 마지막 수인 경우
prev = n - (S[idx - 1] + 1) + 1
next = 1
else:
prev = n - (S[idx - 1] + 1) + 1
next = (S[idx + 1] - 1) - n + 1
res = prev * next - 1
print (res)
대체 어떤 경우를 고려 못하고 있는걸까요 …
맞았습니다! 코드
# ㅠㅠ