티스토리 뷰
문제 설명
정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다.
각 query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
제한 조건
제한사항
1 ≤ arr의 길이 ≤ 1,000
0 ≤ arr의 원소 ≤ 1,000,000
1 ≤ queries의 길이 ≤ 1,000
0 ≤ i < j < arr의 길이
내 답안
import Foundation
func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
var result = arr
for query in queries {
let temp = result[query[0]]
result[query[0]] = result[query[1]]
result[query[1]] = temp
}
return result
}
접근 방법
temp 값을 주고 배열[0]과 배열[1]을 바꾼다
다른 풀이
func solution(_ arr: [Int], _ queries: [[Int]]) -> [Int] {
return queries.reduce(into: arr) { result, q in
result.swapAt(q[0], q[1])
}
}
알게 된 것
reduce(into:)
정리
https://codingbackup.tistory.com/241
'코딩테스트' 카테고리의 다른 글
Lv.0 swift 1로 만들기 (0) | 2024.03.29 |
---|---|
Lv.0 swift 문자열 겹쳐쓰기 (1) | 2024.03.27 |
Lv.0 swift 분수의 덧셈 (0) | 2024.03.27 |
Lv.0 swift 배열 만들기 5 (0) | 2024.03.25 |
Lv.0 swift 날짜 비교하기 (0) | 2024.03.25 |
최근에 올라온 글