728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181923
내 풀이
def solution(arr, queries):
answer = []
for s, e, k in queries:
# print(s, e, k)
min_q = []
# s=0, e=4, k=2 ===> 0<2<i<4
for i in range(len(arr)):
if s<=i<=e:
if arr[i] > k:
min_q.append(arr[i])
# print(min_q)
"""
if min_q:
answer.append(min(min_q))
else:
answer.append(-1)
"""
answer.append(min(min_q) if min_q else -1)
return answer
생각보다 시간이 오래 걸린 문제였다. (물론 이런 문제들 특: 다 풀고나면 세상 쉬워보임)
2차원 정수 배열 queries를 크게 돌며 하나의 배열 값을 가져온다.
그 배열 내에서 arr 배열을 순회하며 조건에 맞는 값을 가져온다.
조건은 s<=i<=e 이며, arr[i] > k 이다.
조건에 맞는 값을 임시배열(min_q)에 넣었고, 최솟값을 꺼내서 answer 배열에 넣는다.
for i in range(len(arr)):
if s<=i<=e:
if arr[i] > k:
min_q.append(arr[i])
===>
for x in arr[s:e+1]:
if x > k:
tmp.append(x)
내가 푼 부분 중에서 배열을 잘라내는 로직을 파이썬의 리스트 슬라이싱 문법을 사용하면 조금 더 깔끔하게 해결할 수 있다!
끄읏
728x90
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 0 배열 만들기 2 (1) | 2023.12.28 |
---|---|
[프로그래머스][PYTHON] Lv. 0 수열과 구간 쿼리 4 (0) | 2023.12.27 |
[프로그래머스][PYTHON] Lv. 0 수열과 구간 쿼리 3 (0) | 2023.12.27 |
[프로그래머스][PYTHON] Lv. 0 수 조작하기 2 (1) | 2023.12.27 |
[프로그래머스][PYTHON] Lv. 0 주사위 게임 2 (1) | 2023.12.22 |