Study/[Panda] 자료구조 스터디 4

05. 큐란?

01. 큐란?영어 queue는 줄을 의미하는 단어이다.가장 먼저 들어온 것이 가장 먼저 나가는 큐방식으로 넣고 빼는 자료구조를 큐라고 한다.선입선출, FIFO(First-in-First-Out) 방식이라고 부리기도 한다.LIFO 형식인 스택과 비교하면서 공부하는 것이 좋다. front: 큐의 맨 앞에 있는 원소, 제일 먼저 큐에 들어온 원소tail: 큐의 맨 뒤에 있는 원소, 제일 나중에 큐에 들어온 원소큐에서 삽이할 때는 삽입할 원소를 알려주어야하지만 삭제할 때는 단순히 삭제하면 된다.스택에서 삭제는 무조건 최근에 들어간 원소를 대상으로 하기 때문이다. 다음은 필요한 작업들의 명시한 큐의 추상 데이터 타입이다.작업들 중 앞의 3개는 큐의 핵심 작업이고, 뒤에 2개는 거의 모든 자료에 공통으로 들어가는 ..

[Panda] 03. List 리스트

01. 리스트란리스트는 대표적인 자료구조 중 하나로 '줄 세워져 있는 데이터' 또는 '죽 늘어선 데이터'를 의미한다. 리스트를 관리하기 위해 필요한 작업은 다음과 같을 것이다.다음은 리스트가 어떤 작업으로 구성된 자료구조인지를 알려주는 ADT 리스트이다.i번째 자리에 원소 x를 삽입한다.i번째 원소를 삭제한다.원소 x를 삭제한다.원소 x가 몇번째 원소인지 알려준다.리스트의 사이즈(원소의 총 수)를 알려준다.파이썬은 리스트를 기본 자료구조로 제공하여 더 많은 작업을 지원하지만 자바는 언어 자체에서 ㅣ릇트를 기본 자료구조로 제공하지 않고 java.util 패키지에서 제공한다. 리스트의 구현리스트를 구현하는 두 가지 대표적인 방법배열에 원소들을 쭉 배치하는 방법 링크를 이용해 원소들을 연결하는 방법(연결 리스..

[Panda] 02. 자바 기초

01. 클래스자바에서 가장 중요한 용어 중 하나가 클래스이다.클래스는 객체를 만드는 수단이고 객체 지향 언어인 자바는 모든 것이 클래스를 중심으로 구성된다.클래스는 어떤 대상을 추상화하는 의미 단위이기도 하다. 메서드 중에 클래스이름과 동일한 메서드를 생성자라한다.생성자는 해당 클래스의 객체가 하나 만들어질 때 자동으로 수행되어 객체를 초기화하는 역할을 한다.클래스의 필드나 메서드를 선언할 때는 public, private 같은 접근 지정자로 공개범위를 정해주어야한다.객체 지향의 핵심 철학 중 하나가 불필요한 외부 노출은 지양하는 것이므로 접근 지정자를 이요해 필요한 만큼만 클래스 바깥으로 공개하는 것이 좋다. 메서드 중 main() 메서드는 프로그램의 수행을 시작하는 메서드로 제일 먼저 실행된다. 이 ..

[Panda] 01. 자료구조와 시간복잡도

01. 자료구조란?자료구조: 데이터(자료)에 효율적으로 접근하고 수정할 수 있도록 저장, 조직, 관리하는 방법에 관한 이론알고리즘: 문제 해결 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 기술한 것 자료구조는 문제 해결에 사용할 부품자료구조는 알고리즘에서 부품 같은 역할을 한다.자료구조를 몰라도 프로그램을 작성할 수 있다. 그러나 자료 구조를 모르고 프로그램을 작성하는 것은 재료의 속성이나 구조물의 구성 방법을 모르고 건축물을 만드는 것이다.자료구조에 대해 잘 이해하고 있어야 적절한 곳에 적절한 코드 사용 및 조합하고 내구성 있는 프로그램을 만들 수 있다. 자료구조를 구현, 사용, 결합하는 과정에서 수학적 사고(특히 이산수학)도 크게 도움된다. 사고가 체계적일 수록 자료구조를 사용한..