[알고리즘] Swift -프로그래머스 연습문제 #181893(배열 조각하기)
2023. 6. 7. 02:33ㆍALGORITHM/Swift
728x90
반응형
문제링크
분석
정수배열 arr 와 query 가 주어진다.
query 를 순회하면서 다음 작업을 반복한다.
짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버린다.
홀수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버린다.
위 작업을 마친 arr의 부분 배열을 리턴하는 문제이다.
풀이 과정
arr = [0,1,2,3,4,5] / query = [4,1,2]
i=0, 짝수 인덱스이므로 4번인덱스 뒷부분을 잘라서 버린다. arr = [0,1,2,3,4]
i=1, 홀수 인덱스이므로 1번인덱스 앞부분을 잘라서 버린다. arr = [1,2,3,4]
i=2, 짝수 인덱스이므로 2번인덱스 뒷부분을 잘라서 버린다. arr= [1,2,3]
풀이
import Foundation
func solution(_ arr: [Int], _ query: [Int]) -> [Int] {
var result: [Int] = arr
for i in 0..<query.count {
if i % 2 == 0 {
result = Array(result.prefix(through: query[i]))
} else {
result.removeFirst(query[i])
}
}
return result
}
결과
print(solution( [0, 1, 2, 3, 4, 5] , [4, 1, 2] ))
📂 정리
query의 값이 짝수일때와 홀수일때가 아닌 인덱스의 값이 짝수일때와 홀수일때로 나누는 것이다.
문제가 헷갈려서 query의 값으로 설정했더니 에러가 나왔다.
for i in query {
if i % 2 == 0 {
...
}
}
테스트 1 〉 실패 (signal: illegal instruction (core dumped))
728x90
반응형
'ALGORITHM > Swift' 카테고리의 다른 글
[알고리즘] Swift -프로그래머스 연습문제 #12912(두 정수 사이의 합) (0) | 2023.06.27 |
---|---|
[알고리즘] Swift -프로그래머스 연습문제 #181916(주사위 게임 3) (2) | 2023.06.08 |
[알고리즘] Swift -프로그래머스 연습문제 #133502(햄버거 만들기) (0) | 2023.06.07 |
[알고리즘] Swift -프로그래머스 연습문제 #181832(정수를 나선형으로 배치하기) (0) | 2023.05.30 |
[알고리즘] Swift -프로그래머스 연습문제 #178871(달리기 경주) (0) | 2023.05.30 |