본문 바로가기

ComputerScience

(27)
[C언어] 연결리스트(linkedList)와 원형 연결리스트! _C로배우는 쉬운 자료구조 C로 배우는 쉬운 자료구조를 참고했습니다. 안녕하세요!! (순차 자료구조와 연결 자료구조의 차이점을 알고 싶다면?) (아래 링크 참고해주세요!!) 2021.08.28 - [자료구조] - [C언어] 2차원, 3차원 배열을 통한 순차 자료구조의 사용 예시(테트리스 블록, 휴대폰 판매량, 선형 list) 삽입, 삭제 연산 이후 '연속적' 성질을 유지하기 위해 데이터의 추가 이동을 해주어야 하는 순차 자료와 달리!! 연결 자료구조란? '동적할당' 필요한 갯수만큼의 (데이터) 노드를 각각 동적 할당 후, 해당 데이터들을 이어주는 방식입니다. 다시 말해서 데이터와 데이터가 연결되어 구현되는 방식이라서, 메모리 사용의 비효율성 문제가 없습니다. 줄줄이 소시지, 또는 화물칸을 실은 기차를 연상할 수 있습니다. 어라? ..
[C언어] 2차원, 3차원 배열을 통한 순차 자료구조의 사용 예시(테트리스 블록, 휴대폰 판매량, 선형 list) 순차 자료구조란? 데이터는 다양한 방식으로 저장될 수 있는데, 메모리에 저장된 물리적 위치가 연속적으로 저장된 경우를 순차 자료구조라고 합니다. C에서는 배열을 통해서 순차 자료구조를 표현합니다. 그래서 메모리에 저장된 시작 위치를 알면 특정 자료의 위치를 쉽게 알 수 있다는 장점이 있습니다. 반면에 자료들이 연속적으로 저장되어있어, 특정 자료를 특정 위치에 삽입하거나, 삭제할 경우 특정위치 뒤에있는 자료들을 모두 한칸씩 뒤로 이동해서 자리를 비워주거나, 특정위치에 삭제할 자료 뒤에있는 자료들을 모두 한칸씩 앞 당겨야 한다는 번거로운 단점이 있습니다. 순차 자료구조의 사용 예시 순차 표현의 사용 예시로 첫번째는 테트리스의 블록 표현 방법이 예시가 있습니다. 테트리스 블록 한개를 예로들어서, 이 블록의 표..
[C언어]알고리즘 (Time Complexity)시간 복잡도와 빅오 표기법 우선, Algorithm 알고리즘 이란? 어떤 문제를 해결하고자, 구현하고자 하기 전에, 문제의 해결을 위한 절차 또는 단계를 명시적이고, 논리적으로 표현한 것을 알고리즘이라고 합니다. (추상적으로 표현된 알고리즘은 특정한 프로그래밍 언어로만 작성된 것이 아니기에 다른 언어를 사용하는 프로그래머들이 자신이 알고있는 언어를 통해 알고리즘의 해답을 구현할 수 있습니다.) 문제를 해결하기 위한 방안으로 여러 알고리즘이 있을 것인데,, 이중에서 가장 좋은 알고리즘. 효율적인 알고리즘을 판별하기 위한 대표적인 알고리즘의 성능 분석 방법은 시간복잡도와 공간복잡도입니다. 시간 복잡도 알고리즘을 프로그램으로 수행되는데(실행->완료시점)까지 사용된 총 저장공간을 분석하는 방법은 공간복잡도이고, 알고리즘이 수행되는데 실행..