[python] - 수열과 구간 쿼리 2

오유민·2024년 4월 9일
0

프로그래머스

목록 보기
9/10



📌 주어진 범위 안에서 최솟값 찾아내는 코드

n = 3
m = 10

# 주어진 범위에서 수를 생성하고, 이를 리스트로 변환합니다.
numbers = list(range(n, m+1))

# 리스트 내의 최솟값을 구합니다.
min_value = min(numbers)

print(min_value)  # 출력 결과: 3

range() 함수

# 1. 첫번째 쿼리의 s~e까지의 인덱스에 있는 요소들 중에 k보다 큰 요소를 찾는다.
# 2. k보다 큰 요소들 중 최솟값을 찾는다.
# 3. 해당 요소들 중 최솟값을 answer에 추가한다.
# 4. 만약 k보다 큰 요소가 없다면 -1을 answer에 추가한다.

def solution(arr, queries):
    answer = []
    
    for s, e, k in queries:
        li = []  # 쿼리 범위 내에서만 초기화
        
        for i in range(s, e+1):
            if arr[i] > k:
                li.append(arr[i])
        
        if li:  # li가 비어있지 않으면
            answer.append(min(li))
        else:  # li가 비어있으면 (=k보다 큰 요소가 없으면)
            answer.append(-1)
                
    return answer
profile
개발자연습생의 개발 일기

0개의 댓글