문제
문제 이해
ex. 입력 [2,5,3]
1. i번째 숫자부터 j번째 숫자까지 자른다. [5,2,6,3]
2. 숫자들을 정렬한다. [2,3,5,6]
3. k번째 있는 수를 구한다. ==> "5"
코드
01 def solution(array, commands):
02 answer = []
03 for i in range(len(commands)):
04 ary = array[commands[i][0]-1:commands[i][1]]
05 ary.sort()
06 answer.append(ary[commands[i][2]-1])
07
08 return answer
풀이
2차원배열의 for문을 사용하는 것이다.
commands의 입력값이 2차원배열로 이루어져있기 때문에
for 문의 형태가 commands[i][0] -1 : commands[i][1]로 나타나는 것
03 for 문을 commads의 len만큼 돌려준다.
04 ary에 array의 [i번째수 - 1 : j번째 수] 까지 슬라이싱해서 넣어준다.
05 sort()함수를 이용해 오름차순 정렬한다.
06 ary에 k-1번째 수 인덱싱해서 answer에 추가
🧠
더보기
🧠 2차원배열이라 그런지 for문의 형태가 저렇게 풀어지는지 생각도 못했다. 아직은 익숙하지 않아서 어려운것도 있는 것 같다 반복적으로 학습해보면서 사고를 넓혀가도록 해야겠다.
728x90
반응형
'코테 문제 풀기' 카테고리의 다른 글
[프로그래머스] 예상 대진표 (.python) (0) | 2024.07.05 |
---|---|
[프로그래머스] 멀리 뛰기 (.python 파이썬) (0) | 2024.07.04 |
[프로그래머스] 정수 제곱근 판별 (파이썬/ python) (0) | 2024.04.03 |
[프로그래머스] 문자열 내 p와 y의 개수 (파이썬/python) (0) | 2024.04.03 |
[이코테] 2. 큰 수의 법칙 (with. python) (0) | 2024.01.17 |