Table of Contents 개요효율성추상화재사용분류 1. 개요 자료구조란 자료를 저장하는 방법을 뜻합니다. 프로그램 대다수가 자료를 저장하고 사용하기 때문에, 자료구조는 프로그래밍에서 빼놓을 수 없는 요소로 분류되며, 프로그래밍 언어를 익힌 후에 학습해야 할 필수 과목 리스트에 항상 올라와 있습니다. 그런데 사실, 자료구조를 배우고자 하는 분이시라면 이미 자료구조를 사용하고 계실 가능성이 높습니다. C언어, 자바, 파이썬과 같은 언어를 배울 때 사용하는 변수, 배열, 구조체도 자료구조의 일종이기 때문이지요. 여러분들은 언어를 배우실 때 이들을 이용해 자료들을 잘 저장하고 사용해 오셨을 겁니다. 어쩌면 변수와 배열을 이용해 자료를 저장하고 처리할 자신이 있는데, 굳이 자료구조를 배워야 하나 생각하실 ..
Table of Contents 개요시간복잡도의 예시 : O(1), O(n), O(n^2)O 표기법실제 실행 시간 1. 개요 깔끔하고 이해하기 쉬운 코드, 유지 보수하기 좋은 프로그램 구조 등등 좋은 프로그램의 조건에는 여러 가지가 있습니다. 하지만 이런 요소들은 프로그램을 개발하는 사람들의 기준이고, 프로그램을 사용하는 사람 입장에서 중요한 건 아닙니다. 그렇다면 사용자의 입장에서 중요한 건 무엇일까요? 여기에도 다양한 답들이 존재할 수 있지만, 중 저희가 주목해야 할 요소로 프로그램의 실행 시간을 뽑을 수 있습니다. 예를 들어 검색에 3초가 걸리는 사이트와 0.1초가 걸리는 사이트가 있다고 했을 때, 사용자가 느끼는 답답함은 천지 차이일 것입니다. 따라서 프로그램을 만들 때도 실행 시간을 줄이기 위해..