[백준] 1059번 좋은 구간

거북이·2023년 3월 10일
0

백준[실버4]

목록 보기
80/91
post-thumbnail

💡문제접근

  • 이 문제는 고려해야할 사항이 진짜 많았다.
  • 집합에 들어있는 원소가 정렬이 수행된 상태가 아니라는 점, 그리고 집합에 들어있는 원소를 오름차순 정렬했을때 맨 처음 원소의 값이 입력값 n보다 큰 수인 경우 등의 조건들을 전부 고려해야한다. 코너 케이스 및 이와 같은 조건들을 꼼꼼히 체크하지않아서 WA를 여러차례 받고 질문게시판에 있는 내용들을 참고해서 코드를 작성할 수 있었다.

💡코드(메모리 : 31256KB, 시간 : 88ms)

import sys
input = sys.stdin.readline

L = int(input())
elements = list(map(int, input().strip().split()))
n = int(input())
elements.sort()

cnt = 0         # 좋은 구간의 개수
start = 0
end = 0
for i in range(len(elements)):
    if elements[i] > n:
        start = elements[i-1]
        end = elements[i]
        break

if n < elements[0]:
    for a in range(1, n+1):
        for b in range(a+1, elements[0]):
            if a <= n <= b:
                cnt += 1
else:
    for a in range(start+1, n+1):
        for b in range(a+1, end):
            if a <= n <= b:
                cnt += 1
print(cnt)

💡소요시간 : 1h

0개의 댓글