def solution(array, commands):
answer = list()
for ijk in commands:
# 1. commands에 있는 i, j, k 를 뽑아낸다.
i = ijk[0] - 1
j = ijk[1]
k = ijk[2] - 1
# 2. 배열 array의 i번째부터 j번째까지 잘라서 새로운 배열을 만든다.
new_arr = array[i:j]
# 3. 2번에서 만든 새로운 배열을 정렬한다.
new_arr.sort()
# 4. 새로운 배열의 k번째 수를 정답 리스트에 넣는다.
answer.append(new_arr[k])
return answer
for문에서 2차원 리스트에 있는 값들을 한꺼번에 꺼내고 싶다면
- 위 문제에서 commands에 있는 i, j, k 를 뽑아낼 때
- 첫번째 방법
for command in commands: i, j, k = command
i == command[0], j == command[1], k == command[2] 이렇게 값이 들어간다.
- 두번째 방법 - 더 간결한 방법!
for i,j,k in commands:
# 2. 배열 array의 i번째부터 j번째까지 잘라서 새로운 배열을 만든다.
new_arr = array[i:j]
# 3. 2번에서 만든 새로운 배열을 정렬한다.
new_arr.sort()
# 4. 새로운 배열의 k번째 수를 정답 리스트에 넣는다.
answer.append(new_arr[k])
answer.append(list(sorted(array[i:j]))[k])
새로운 변수에 할당을 해줄 필요도 없고 코드도 더 깔끔해진다~!