1. 문제 설명
2. 코드
def solution(array, commands):
answer = []
for i,j,k in commands:
sliced = array[i-1:j]
sliced.sort()
answer.append(sliced[k-1])
return answer
3. 풀이 과정
슬라이싱을 하면 되는 간단한 문제이다.
commands에서 i,j,k를 반복문으로 받아서
sliced변수에 array를 슬라이싱한 배열을 넣는다. 이때 i는 1-based index이므로 [i-1:j]로 슬라이싱한다.
sort() 함수로 sliced 배열을 정렬한다.
리스트 초기화 된 answer에 sliced 배열의 k번째 값을 append()로 추가한다.
k또한 1-based index이므로 [k-1]로 값을 탐색한다.
반복문을 빠져나오면 answer를 반환한다.
4. 추천 코드
def solution(array, commands):
return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands))
5. 추천 코드의 풀이 과정
- 자투리 개념: lambda : 이름 없는 함수
lambda x: 표현식 - map() : 리스트 하나하나에 함수를 적용
map(함수,리스트)
한줄 풀이로 map()에 lambda 표현식으로 작성하였다.
'프로그래머스 > 알고리즘 고득점 Kit' 카테고리의 다른 글
[프로그래머스] [정렬] Lv.2 /H-index (파이썬/Python) (0) | 2025.05.29 |
---|---|
[프로그래머스] [정렬] Lv.2 /가장 큰 수 (파이썬/Python) (0) | 2025.05.28 |
[프로그래머스] [힙(Heap)] Lv.3 /이중우선순위큐 (파이썬/Python) (0) | 2025.05.26 |
[프로그래머스] [힙(Heap)] Lv.3 /디스크 컨트롤러 (파이썬/Python) (0) | 2025.04.30 |
[프로그래머스] [힙(Heap)] Lv.2 /더 맵게 (파이썬/Python) (0) | 2025.04.27 |