🚩 문제 설명
https://programmers.co.kr/learn/courses/30/lessons/42748
◾ 배열을 i에서 j까지 자르고 그 중에서 k번째의 수를 구하는 문제
✅ 입출력
array: 입력되는 수열
commands: [i, j, k] 배열을 원소로 가지는 배열
return ➡️ 해당 commands에 따라 나오는 k번째의 수를 담은 배열
array | commands | return |
[1, 5, 2, 6, 3, 7, 4] | [[2, 5, 3], [4, 4, 1], [1, 7, 3]] | [5, 6, 3] |
✔️ 예시
만약 array = [1, 5, 2, 6, 3, 7, 4] 고, commands = [2, 5, 3] 이라면
◾ 위와 같은 과정을 통해서 3이 구해진다.
📑 문제 풀이
with 파이썬 (Python)
def solution(array, commands):
ans = []
for i in commands:
tmp = array[i[0] - 1:i[1]]
tmp = sorted(tmp)
ans.append(tmp[i[2] - 1])
return ans
💬 Point
➡️ 슬라이싱
➡️ sorted(배열) 함수 : 배열을 정렬한다.
◾ commands를 돌아준다.
◾ 해당 commands에 따라 슬라이싱을 해준다.
- commands[0]에 i 값이 들어가있다.
- commands[1]에 j 값이 들어가있다.
- 따라서 array[ commands[0] - 1 : commands[1] ] 이런식의 로직을 따라 슬라이싱한다.
◾ sorted 함수로 정렬을 해준다.
◾ ans 배열에서 k 번째 수를 추가해준다.
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > 프로그래머스' 카테고리의 다른 글
[PG67256] 키패드 누르기 (0) | 2021.11.06 |
---|---|
[PG81301] 숫자 문자열과 영단어 (0) | 2021.11.06 |
[PG60057] 문자열 압축 (0) | 2021.11.06 |
[PG72410] 신규 아이디 추천 (0) | 2021.11.06 |
[PG42862] 체육복 (0) | 2021.10.15 |