Q. 알고리즘이 무엇인가요?
A. 저는 부족해서 잘 모르겠고, 유명하신 분의 말씀을 전달해드릴께요.

“알고리즘을 간단히 설명하면, 일련의 입력값을 받아서 그에 맞는 일련의 출력값을 내놓기 위해 만들어진, 잘 정의된 컴퓨터 처리 절차라고 할 수 있다. 즉, 알고리즘이란 입력값을 출력값으로 변환하기 위해 만들어진 일련의 컴퓨터 절차이다.
-토마스 토먼, 찰스 레이서손, 로날드 리베스트, 클리포드 스타인 공저, “알고리즘 개론” (3판, 2009)

알고리즘을 구현하기 위해서는 적당한 방식의 데이터를 받을 그릇이 있어야겠죠? 그게 앞서 말했던 “데이터구조” 입니다.

그러면 데이터구조를 선택만하는 것이 데이터구조를 아는 것일까요?
‘데이터구조를 내가 안다!’ 라는 뜻은
1. 데이터 삽입
2. 데이터 삭제
3. 데이터 검색
4. 데이터 순회
5. 데이터 정렬
을 할 줄 아는 것입니다.

앞으로 설명할 데이터구조들을 그리고 알고리즘들에 대해서 이해의 첫 단추는 위 5 가지를 할 수 있는 것입니다. 그리고 시간 및 공간에 대한 효율성을 생각할 수 있겠죠.


스위프트위 기본적인 타입들

스위프트의 기본 데이터 타입에는
1. Value type, 값 기반 타입
2. Reference type, 참조 기반 타입
자세한 설명을 책 p46쪽을 참조를 권장드립니다.

Value type은 값을 공유하는 것이 아니라 복사한다. 예시로 구조체와 열거형이 있다.
Reference type은 값을 복사하지 않고 공유한다. 예시로 클래스와 클로저 등이 있다.

정도로 요약하고 넘어가겠습니다.

profile
iOS & Flutter

0개의 댓글