티스토리 뷰
<풀이>
처음은 그냥 내장 함수 sorted()를 활용해서 풀어봤다.
하지만 정렬 알고리즘을 직접 구현해보는 것도 좋을 것 같아서 선택 정렬과 삽입 정렬을 구현해보기로 했다.
1. 내장함수 sorted 활용
1
2
3
4
5
6
7
8
|
def solution(array, commands):
answer = []
for command in commands:
temp_array = array[command[0]-1:command[1]]
temp_array = sorted(temp_array)
answer.append(temp_array[command[2]-1])
return answer
|
cs |
2. 선택 정렬
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def solution(array, commands):
answer = []
def selection_sort(my_array):
for i in range(len(my_array)-1):
min_val = my_array[i]
min_idx = i
for j in range(i+1, len(my_array)):
if my_array[j] < min_val:
min_val = my_array[j]
min_idx = j
my_array[i], my_array[min_idx] = my_array[min_idx], my_array[i]
return my_array
for command in commands:
temp_array = array[command[0]-1:command[1]]
temp_array = selection_sort(temp_array)
answer.append(temp_array[command[2]-1])
return answer
|
cs |
3. 삽입 정렬
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
def solution(array, commands):
answer = []
def insertion_sort(my_array):
for i in range(1, len(my_array)):
for j in range(i, 0, -1):
if my_array[j] < my_array[j-1]:
my_array[j], my_array[j-1] = my_array[j-1], my_array[j]
else:
break
return my_array
for command in commands:
temp_array = array[command[0]-1:command[1]]
temp_array = insertion_sort(temp_array)
answer.append(temp_array[command[2]-1])
return answer
|
cs |
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 하노이의 탑 (with. Kotlin) (0) | 2021.07.24 |
---|---|
[프로그래머스] 가장 큰 수 (0) | 2020.12.18 |
[프로그래머스] 카펫 (0) | 2020.12.17 |
[프로그래머스] 소수 찾기 (0) | 2020.12.16 |
[프로그래머스] 모의고사 (0) | 2020.12.16 |
댓글