반응형
배열의 요소를 서로 교환하기
배열에서 특정 요소 두개를 서로 교환하는 경우가 있다.
이때, 교환할 요소가 i번째와 j번째라고 했을 때, 아래와 같이 3가지 방법이 있다.
1. 직접 교환
임시 배열을 생성하여 교환할 값들을 저장하여, 원본 arr에 접근하여 변경
let tempArr = [originArr[i], originArr[j]]
arr[j] = tempArr[0]
arr[i] = tempArr[1]
2. 튜플을 이용한 교환
튜플을 사용하면 임시로 저장하는 공간없이 두 요소를 교환 가능하다.
(resultArr[i], resultArr[j]) = (resultArr[j], resultArr[i])
3. swapAt(_: _:)메서드를 이용한 교환
swapAt메서드의 파라미터는 원본 배열의 index가 들어간다. 별도의 메모리가 저장되지 않기 때문에 효율적이다.
arr.swapAt(i, j)
swapAt 메서드의 시간복잡도는 𝑂(1) 이다.
반응형
'모바일앱 > Swift' 카테고리의 다른 글
Swift - Enumerated() 사용하기 (0) | 2024.08.09 |
---|---|
Swift - 참조(Strong, weak, unowned) (0) | 2024.06.08 |
swift signum() 메서드 이용하기 (0) | 2024.05.30 |
swift Array - 빠르게 빈 배열 만들기 (0) | 2023.01.05 |
클로저 톺아보기 (0) | 2022.11.27 |
1급 객체 (0) | 2022.11.27 |
프로퍼티 옵저버(willSet / didSet) - 프로퍼티(2.5) (0) | 2022.11.25 |
연산프로퍼티 - 프로퍼티(2) (0) | 2022.11.22 |