반응형
입력 & 출력
배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때,
commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 출력하시오.
풀이
주어진 배열에서 길이만큼을 잘라 그 안의 수를 정렬해 k번의 수를 출력하는 문제다
Swift에서는 배열의 부분을 부르는 방법을 array[n...m] 을 통해 편리하게 제공한다
자르려는 문자열이 여러개 들어오니, command 개수만큼 반복해주자
우선 반복이 아닌 command가 하나인 경우로 살펴보자
원하는 만큼의 배열은 아래와 같다
array[(command[0]-1)...(command[1]-1)]
이후 이 배열을 정렬하고, k번의 수를 출력해보자
sorted()가 정렬의 의미하고, 뒤에 붙은 [command[2]-1] 은 k번의 수를 말한다
array[(command[0]-1)...(command[1]-1)].sorted()[command[2]-1]
command는 여러 개가 존재하니, 반복문으로 바꾸어주고 출력해주자.
Swift 전체 코드
return commands.map({key in array[(key[0]-1)...(key[1]-1)].sorted()[key[2]-1]})
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 완전탐색 - 카펫 (0) | 2021.03.31 |
---|---|
[프로그래머스] 정렬 - H-Index (0) | 2021.03.31 |
[프로그래머스] 정렬 - 가장 큰 수 (0) | 2021.03.31 |
[백준] 기본 수학 2 - 1978번 소수 찾기 (0) | 2021.03.31 |
[백준] 기본 수학 - 2839번 설탕 배달 (0) | 2021.03.30 |