
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42748
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
- 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 함

- 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때,
commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 반환 - 제한사항)
array의 길이는 1 이상 100 이하
array의 각 원소는 1 이상 100 이하
commands의 길이는 1 이상 50 이하
commands의 각 원소는 길이가 3
정답 코드
def solution(array, commands):
result = []
for command in commands:
i, j, k = command
sliced = array[i-1:j]
sliced.sort()
result.append(sliced[k-1])
return result
코드 설명
def solution(array, commands):
result = [] # 결과를 담을 빈 리스트 생성
for command in commands: # commands 리스트에서 명령 하나씩 꺼냄
i, j, k = command # i, j, k 값 각각 분해해서 저장
sliced = array[i-1:j] # i번째부터 j번째까지 자름 (1-based 인덱스를 0-based로 변환)
sliced.sort() # 자른 배열을 오름차순 정렬
result.append(sliced[k-1]) # 정렬된 배열에서 k번째 값 추가 (1-based → 0-based 인덱스)
return result # 모든 결과를 담은 리스트 반환
한 줄 코드
def solution(array, commands):
return [sorted(array[i-1:j])[k-1] for i, j, k in commands]'코딩 테스트 연습 > [프로그래머스] Python' 카테고리의 다른 글
| [LV.3] 연습문제 > 가장 가까운 같은 글자 ⭐️ (1) | 2025.07.11 |
|---|---|
| [LV.3] 월간 코드 챌린지 시즌1 > 두 개 뽑아서 더하기 (1) | 2025.07.10 |
| [LV.3] 연습문제 > 문자열 내 마음대로 정렬하기 ⭐️ (1) | 2025.07.08 |
| [LV.3] 숫자 문자열과 영단어 ⭐ (0) | 2025.07.07 |
| [LV.3] 연습문제 > 시저 암호 (0) | 2025.07.04 |