알고리즘 3

데이터 구조 (스택, 큐)

스택(stack) 데이터 구조의 하나로서 데이터를 1열로 나열 새롭게 추가한 데이터에만 접근 가능. - 예시 : 서류를 쌓아 놓은 경우처럼 새로운 서류가 도착하면 현재 서류 더미의 가장 위에 올려두고 서류를 꺼낼 때는 가장 위에서부터 꺼냄 스택에 데이터를 추가할 때는 가장 위에 추가된다. - push (푸쉬) : 스택에 데이터를 추가하는 작업 - pop (팝) : 스택에 데이터를 꺼내는 작업 스택처럼 나중에 넣은 것을 먼저 꺼내는 후입선출 구조를 'Last In First Out' 이라고 하며, LIFO 라고도 한다. 리스트나 배열과 마찬가지로 스택도 데이터를 1열로 나열한 것이지만, 데이터 추가나 삭제가 단방향으로만 가능하다는 제약이 있다. 또한, 데이터 접근도 스택의 가장 위에 있는 데이터만 가능. ..

알고리즘 2023.01.08

데이터 구조 (리스트, 배열)

데이터 구조? 데이터를 메모리에 저장할 때 데이터의 순서나 위치 관계 등을 정하는 것 데이터가 온 순서대로 나열하는 방법은 데이터 추가 시 가장 뒤에 작성하면 되기에 간단하지만 검색이 필요할 때 많은 시간이 걸린다. 반대로, 데이터를 가나다순으로 나열하는 방법은 검색은 쉽지만 데이터 추가가 어렵다. 한 번 만든 후에 변경할 가능성이 없다고 하면 -> 후자 (데이터를 가나다순으로 나열하는 방법) 데이터 추가 빈도는 높지만 검색은 거의 하지 않는 경우라면 -> 전자 (데이터가 온 순서대로 나열) 를 선택하는 것이 맞다. 두 가지 방법을 조합한다면 새로운 데이터를 추가할 때는 대응되는 표의 끝에 추가하면 되고, 데이터를 검색할 때는 대응되는 표만 찾으면 된다. 데이터 구조를 고민해서 메모리 이용 효율을 높인다..

알고리즘 2022.09.23

알고리즘이란?

알고리즘과 프로그램의 차이 '알고리즘(Algorithm)'이란, 계산이나 작업을 하기 위한 순서를 의미한다. 요리의 레시피와 같다고 생각하면 된다.어떤 요리를 만들기 위한 순서를 레시피라고 하면, 특정 문제를 컴퓨터로 해결하기 위한 순서가 알고리즘. 예를 들어 '아무렇게나 나열돼있는 숫자를 작은 순서부터 차례로 정렬하기' '출발점부터 목적지까지의 경로 중 최단 경로 찾기' 등 알고리즘은 프로그램과 비슷하다고 생각할 수도 있다. 하지만 프로그램은 컴퓨터상에서 실행할 수 있도록 컴퓨터가 이해할 수 있는 언어로 작성하는 것에 반해, 알고리즘은 프로그램을 작성하기 이전 단계에서 사람이 이해할 수 있도록 작성하는 것. 같은 알고리즘이라도 프로그래밍 언어가 다르면 다른 프로그램이 되며, 같은 프로그래밍 언어를 사용..

알고리즘 2022.09.18
728x90