https://www.acmicpc.net/problem/1059
아래 걸로 풀었는데 틀렸다고 나옴 이유아시는 분 알려주세요ㅠㅠ
집합S에 n을 넣고 n의 index 앞뒤값을 최소, 최대값으로 설정
L = int(input())#집합S 크기
S = list(map(int,input().split()))#집합 S에 들어갈 정수
#if len(S) != L : print("잘못된 입력입니다.")
n = int(input())#좋은구간에 포함될 n
#if max(S) < n : print("잘못된 입력입니다.")
if n in S :
print(0)
else:
S.append(n)
S.sort()
index = S.index(n)
if index == 0 :
minNum = 1
else :
minNum = S[index-1]
maxNum = S[index+1]
gs = [] #goodSections
for i in range(minNum+1,n+1):
for j in range(n,maxNum):
if i!=j:
gs.append([i, j])
#print(gs)
print(len(gs))
이건 좋은구간을 다 출력해보기 위한 코드이고 수만 구하려면
for문 지우고 아래식만 출력하면됨.
(n - minNum) * (maxNum - n) - 1
'study > 알고리즘 문제 풀이' 카테고리의 다른 글
[python] 2293 동전1 (0) | 2022.06.09 |
---|---|
[python] 1026 보물 (0) | 2022.06.09 |
[python] 1002 터렛 (0) | 2022.06.09 |
[python] 1085 직사각형에서 탈출 (0) | 2022.06.06 |
[python] 1072 게임 (0) | 2022.06.06 |