본문 바로가기

[알고리즘] 2.2.자료구조 : 큐(Queue) 이해하기 개요 큐의 구조는 스택과 다르게 '선입선출'의 구조를 가지고 있습니다. 스택은 막힌 박스와 같아 먼저 들어온 것이 가장 나중에 나가는 구조지만, 큐는 먼저 들어온 것이 먼저 나가는 구조입니다. 좋은 예로 은행에 있는 번호표가 있습니다. 은행에 방문하여 기다리는데, 저보다 늦게 온 다른 분이 먼저 업무를 본다면 기분이 나쁘겠죠? 이러한 상황을 만들지 않기 위해 은행에서는 번호표를 나눠줍니다. 먼저 온 손님은 늦게 온 손님보다 먼저 서비스를 받게 하기 위해서죠. 이러한 은행의 번호표의 체계가 큐(Queue)입니다. 은행의 번호표를 다시 한번 생각해보죠. 제가 619번의 번호표를 뽑았다고 가정하여 봅시다. 지금은 618번 까지 서비스를 받고 있는 상태이고요. 그러면 번호표 시스템 내부에서는 다음 서비스를 받을.. 더보기
[알고리즘] 2.1. 자료구조 : 스택(Stack) 이해하기 개요stack대학교기본어단어장1.쌓다2.스택3.한 무더기4.더미 스택이란 자료구조는 사전적 정의인 '쌓다' '더미' 와 같습니다. 쉽게 설명하자면, 밑이 막힌 상자를 생각하시면 됩니다. 밑이 막혔으니 위로만 물건을 집어 넣을 수 있고, 뺄 수가 있겠죠? 이러한 구조 때문에 먼저 들어온 물건은 나중에 나갈 수 있고, 나중에 들어온 물건은 먼저 나갈 수 있게 됩니다. 이러한 구조를 '선입후출' '후입선출' 이라고 합니다. 자료구조를 공부하는 데 있어 코드로 구현하는 것도 중요하지만, 그보다 중요한 것은 자료구조를 어떻게 사용할지 아는 것이 더 중요합니다. 모든 자료구조는 [삽입],[삭제],[읽기]를 기본으로 가집니다. 따라서 앞으로 자료구조의 사용법은 이 세가지 위주로 알아보겠습니다. 스택 용도 및 예제 스.. 더보기
[swift] 1.기본 문법 : 옵셔널(Optional) 옵셔널(Optional) : 잠재적인 오류를 다루는 방법 옵셔널은 대부분의 언어에서 존재하지 않은 문법이라 낯설게 느껴지실 텐데요, Apple의 개발 문서에서는 옵셔널을 “You use optionals in situations where a value may be absent. ”이라고 설명하고 있습니다. 즉, 값을 성공적으로 반환한다는 보장이 없으면 사용한다는 것인데요. 쉽게 설명하자면 null이 반환될 가능성이 있는 값에 사용하는 것입니다. 그러면 여기서 null이 반환될 가능성이 있으면 'null을 사용하면 되는 것이 아닌가?'라는 생각이 듭니다. 하지만 보시는 바와 같이, '값이 없음'을 의미하는 nil을 대입하였는데 에러가 생겼습니다. nil은 Int타입에 넣을 수 없다는 에러인데요. 이와같이.. 더보기