코딩 테스트/프로그래머스

[Python] 프로그래머스 수열과 구간 쿼리 2

위시리 2024. 9. 7. 18:45

문제

 

분석 및 답

def solution(arr, queries):
    answer = []
    for s,e,k in queries:
        tmp = []
        for x in arr[s:e+1]:
            if x > k :
                tmp.append(x)
        answer.append(-1 if not tmp else min(tmp))
    return answer

 

for s,e,k in queries:

queries는 2차원 배열. 위 코드에서 queries 배열 안에 있는 각 배열을 차례로 가져옴. 각 가져온 배열의 요소들은 [s,e,k]의 형태로 세 개의 값을 포함하고 있으므로, 반복문이 실행될 때마다 queries의 한 배열이 추출되고, 그 배열의 값이 순서대로 s, e, k에 할당된다. 이후 다시 반복문 실행된다.

for x in arr[s:e+1]:

arr 배열의 s번째 인덱스부터 e번째 인덱스까지의 값을 하나씩 x에 할당하며 반복하는 구문. i의 조건에 따라 추출하기 위해 위와 같이 반복문으로 i값 추출