반응형
풀이
- 처음에는 해당 문제에 대한 이해가 되질 않았다...
- 역시 알고리즘은 계속 풀면서 문제 이해하는 능력을 키워야하는 것 같다...
- 무튼 해당 문제에선 주어지는 집합 S에 해당하는 구간에 n을 포함하는 좋은 구간의 개수를 구하는 것으로
- S = [4,8,13,24,30], n = 10 의 경우엔
- 8과 13 사이에 10이 속하기에 해당 구간에서 8과 13이 포함되지 않은
- 9와 12 사이에서 찾는것인데
- 처음엔 여기서 막혔다.
- 이유는 그러면 [ [9,10], [9,11], [9,12], [10,11], [10,12], [11,12]] 이렇게 되는거 아닌가?
- 그러다 문제에서 n을 포함하는 좋은 구간의 개수를 구해보자. 라는 말을 확인하게 되어 이해할 수 있었다.
- 이후 나머지는 간단한 연산 문제이기에 쉽게 해결되었지만 간과한 것이
- 집합 S의 첫 번째의 것에 대한 조사도 해야하기에 S에 0을 추가하여 조사할 수 있도록 해결.
- 물론 정렬도 해줘야 함.
import sys
input = sys.stdin.readline
L = int(input())
S = list(map(int,input().split()))
n = int(input())
S.append(0)
S.sort()
for i in range(len(S)-1):
if S[i] == n or n == S[i+1]:
print(0)
break
elif S[i] <= n <= S[i+1]:
print((n-S[i])*(S[i+1]-n)-1)
break
'알고리즘' 카테고리의 다른 글
[백준, 자바, 1063번] 킹 (0) | 2023.12.22 |
---|---|
[백준, 파이썬, 1063번] 킹 (0) | 2023.12.22 |
[백준, 자바, 1059번] 좋은 구간 (0) | 2023.12.21 |
[백준, 자바, 1051번] 숫자 정사각형 (1) | 2023.12.20 |
[백준, 파이썬, 1051번] 숫자 정사각형 (0) | 2023.12.20 |