문제 바로가기 👉 프로그래머스
☑️ 문제 요약
주어진 배열 array에서 특정 구간 [i, j]을 잘라 정렬한 후, k번째 숫자를 구한다.
제한사항
• array의 길이는 1~100
• commands의 길이는 1~50
• array의 원소 값과 i, j, k 값은 1~100
☑️ KEY 포인트
- 문제 풀이 과정을 먼저 생각한다.
- array의 i번째부터 j번째까지 슬라이싱
- 자른 배열을 정렬
- 정렬된 배열에서 k번째 숫자를 찾음
- 위 과정을 commands에 있는 모든 [i, j, k]에 대해 수행하여 결과 배열을 반환
- 위 과정을 코드로 구현한다.
- 리스트 슬라이싱 활용(array[i-1:j]) - 리스트 인덱스는 0부터 시작하므로 i에서 1을 빼준다.
- 반복문을 통해서 commands 안에 있는 리스트들(개별 command)로 모두 진행
- 실패했던 코드
- 원인 : sort()를 통해 리스트를 정렬하고 변수로 다시 지정했다.
- Pandas의 데이터프레임과 다르게 리스트는 정렬 후 변수로 다시 지정해줄 필요가 없다!
def solution(array, commands):
answer = []
for cmd in commands:
tmp = array[(cmd[0]-1):cmd[1]]
tmp = tmp.sort() # 오류 발생한 부분
tmp = tmp[cmd[2]-1]
answer.append(tmp)
return answer
☑️ 해결 코드
def solution(array, commands):
answer = []
for cmd in commands:
tmp = array[(cmd[0]-1):cmd[1]]
tmp.sort()
tmp = tmp[cmd[2]-1]
answer.append(tmp)
return answer
'Coding Test > Algorithm #Python3' 카테고리의 다른 글
[백준] 괄호 #자료구조 #알고리즘 (0) | 2025.03.31 |
---|---|
[백준] 단어 뒤집기 #자료구조 #알고리즘 (0) | 2025.03.30 |
[백준] 정수 저장 및 명령 처리 프로그램 #스택 #알고리즘 (1) | 2025.03.27 |
[프로그래머스] 같은 숫자는 싫어 #스택/큐 #알고리즘 (0) | 2025.03.20 |
[프로그래머스] 폰켓몬 #해시 #알고리즘 (2) | 2025.03.19 |