좋은 구간 - 1059

Update:     Updated:

Category:

Tags:


1059번: 좋은 구간

문제는 다음을 만족하면서 숫자 $n$을 포함하는 좋은 구간의 갯수 찾기

  • $A$와 $B$는 양의 정수이고, $A < B$를 만족한다.
  • $A ≤ x ≤ B$를 만족하는 모든 정수 $x$가 집합 $S$에 속하지 않는다.


시행 착오 1 🥲

먼저 두 개 구간을 나눠서 시작점이 될 수 있는 경우의 수와 끝점이 될 수 있는 경우의 수를 구한 후, 둘을 곱하는 방식으로 구현해봤다.

image

뒤에 $-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)


대체 어떤 경우를 고려 못하고 있는걸까요 …



맞았습니다! 코드

# ㅠㅠ





맨 위로 이동하기