본문 바로가기

CS

(3)
배열과 해시테이블(Array and HashTable) ◎ 배열 - 배열은 메모리 상에 데이터(원소)를 연속하게 배치한 자료구조이다. - 배열을 선언하게 되면 메모리에서 주소와 공간을 할당하여 시작주소를 index 0에 매핑된다. - 배열은 자료 구조 중 선형 구조에 해당한다. - 배열의 논리적인 순서(인덱스)는 메모리에 저장되는 원소값의 물리적인 순서(메모리 주소)와 동일하다. ○ 배열 읽기(Reading) - 임의의 위치에 있는 원소를 확인하거나 변경하는 연산은 O(1)의 시간 복잡도가 걸림. - 아래표에서 특정 인덱스의 값을 알고 싶은데 그 인덱스에서 접근해서 값을 읽으면 된다. - 특정 인덱스의 값 수정도 마찬가지로 그 인덱스에 접근해서 값을 수정하면 된다. ○ 배열 검색(Searching) - 특정한 값을 검색을 하는 경우는 그 배열의 0번 인덱스부..
2진법, 정보의 표현 ※ 우선 여기에서는 컴퓨터에서 인식되는 2진법과 각 이미지나 문자를 어떻게 표현하는지 알아볼 것이다. ◎ 컴퓨터 과학 - 컴퓨터 과학은 어떠한 입력(input)을 전달받아 출력(output)을 만들어내는 과정이다. - 이러한 입력과 출력을 표현하기 위해선 우선 모두가 동의하는 약속(표준)이 필요하다. ◎ 2진법 - 우리가 일반적으로 사용하는 0,1,2,3,4,5,6,7,8,9 와 같이 표현하는 것은 10진법이다. - 그러나 컴퓨터는 0과 1로만 데이터를 표현하고 이를 2진법이라고 한다. - 그런데 2진법으로 어떻게 글자, 사진, 영상, 소리등을 저장할 수 있을까?? 네번째 자리 세번째 자리 두번째 자리 첫번째 자리 10진법 10³ = 1000 10² = 100 10¹ = 10 1 2진법 2³ = 8 2²..
자료구조 기초 ○ 자료구조(DATA STRUCTURE)란? - 데이터를 표현하고 효율적으로 관리 및 처리하기 위한 구조 - 적절한 데이터 구조는 메모리를 절약할 수도 있고, 실행시간도 단축 시킬 수 있다. ● 스택 예제(선입후출 구조) stack = [] # 삽입(5) - 삽입(7) - 삽입(1) - 삽입(4) - 삭제() - 삽입(2) - 삽입(3) - 삭제() stack.append(5) stack.append(7) stack.append(1) stack.append(4) stack.pop() stack.append(2) stack.append(3) stack.pop() print(stack) # 최하단 원소부터 출력 print(stack[::-1]) # 최상단 원소부터 출력 [5, 7, 1, 2] [2, 1, 7..