Notice
Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 반응형프레임워크
- hackerrank
- 프로그래머스
- ReactorKit UnitTest
- AutoLayout
- Di
- firebase
- IOS
- SWIFT
- UIKit
- 코딩테스트입문
- unittest
- RC
- Bubble Search
- iOS앱 디버깅
- Safari Inspector
- 시험에자주나오는것만
- TDD
- 카카오맵클론
- ios면접
- ARC
- 앱의생명주기
- alamofire
- RxSwift
- algorithm
- Swift디자인패턴
- HackersRank
- firestore
- Swift코딩테스트
- mrc
Archives
- Today
- Total
샘성의 iOS 개발 일지
[코딩테스트 입문] 배열 뒤집기 본문
728x90
문제 설명:
머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
내 풀이:
import Foundation
func solution(_ num_list: [Int]) -> [Int] {
return num_list.reversed()
}
회고:
reverse()는 주어진 배열에 접근하여 그 공간 안에서 순서를 바꿔버리는, mutating function이기 때문에 시간복잡도가 O(n)이다.
반대로, reversed()는 기존의 배열을 ReversedCollection으로 감싸 새로운 값으로 리턴하는, non-mutating function으로 시간복잡도가 O(1)이다. (주어진 배열을 뒤집은 값만 뱉을 뿐, 기존 배열의 메모리공간에 접근하지 않음)
사실 여태 코딩테스트를 풀 때 시간 복잡도를 크게 고려하지 않고 풀이에 급급했다. 푸는 것이 물론 가장 중요하지만, 더 효율적인 풀이가 무엇인지 고려하는 습관도 들여야겠다.
728x90
'Algorithm > 프로그래머스' 카테고리의 다른 글
[코딩테스트 입문] 양꼬치 (0) | 2023.05.05 |
---|---|
[코딩테스트 입문] 직각삼각형 출력하기 (0) | 2023.05.05 |
[코딩테스트 입문] 아이스 아메리카노 (0) | 2023.05.05 |
[코딩테스트 입문] 옷가게 할인 받기 (0) | 2023.05.04 |
[코딩테스트 입문] 배열의 평균값 (0) | 2023.05.04 |