
🧩 자료구조: 데이터를 꺼내쓰기 효율적인 형태로 저장하는 방식
🧩 단순자료구조: 프로그래밍 언어의 데이터형식에 해당하는 정수, 실수, 문자, 문자열 등
| 형식 | 특징 |
|---|---|
| 정수 | 0, 100, 1234, -27 등 |
| int, integer (소수점 ❌) | |
| 실수 | 0.1, 3.14 등 |
| float (소수점 ✅) |
🧩 선형자료구조: 데이터를 한 줄로 순차적으로 표현한 형태
🔴 ➡️ 🟠 ➡️ 🟡 ➡️ 🟢 ➡️ 🔵
🧩 비선형자료구조: 하나의 데이터 뒤에 여러개가 이어지는 형태
🧩 파일자료구조: 파일내용이 디스크에 저장되는 방식 → 순차파일 or 직접파일 구분됨
📎 순차파일 (Sequential File)
| 구분 | 내용 |
|---|---|
| 장점 | 구조간단 → 저장되는 공간효율 높음 ✅ |
| 단점 | 추가•삭제 → 파일내용 재구성 ➡️ 시간 많이 걸림 ⚠️ |
| 데이터검색 → 처음부터 끝까지 모두 찾아야함 ➡️ 비효율적 ⛔️ |
📎 직접파일 (Direct File)

📎 색인순차파일
🧩 알고리즘: 문제를 논리적으로 접근 → 최적의 해를 찾아가는 방법
📍 자료구조
- 컴퓨터 분야에서 효율적 접근 + 수정을 위해,
- 자료를 구성 + 관리 + 저장하는 것
📍 알고리즘
- 컴퓨터 분야 or 수학 관련 분야에서
- 어떤 문제를 해결하기 위해,
- 정해진 일련의 단계 + 절차 + 방법
자료구조와 알고리즘은 데이터와 그 데이터를 처리하는 방법의 관계
📎 일반언어표현
📎 순서도표현

📎 의사코드표현(pseudocode)
: 레이블1
animal <- get animal
IF 트럭에 태울 수 있으면 THEN
Put on a truck <- animal
ELSE
Put in the fence <- animal
ENDIF
IF 아직 태워 볼 동물이 남았으면 THEN
GOTO 레이블1
ELSE
finish program
ENDIF
📎 프로그래밍코드표현
def main():
while(true)
animal = getAnimal()
if truck_weight + animal.weight <= 7:
truck[put_count] = animal
put_count += 1
else:
fence[wait_count] = animal
wait_count += 1
if getAnimal() != Nome:
continue
else:
exit()
return
📎 혼합형태표현
🧩 시간복잡도 (Time Complexity): 알고리즘 소요시간 기준 → 알고리즘 성능 분석 방법
📍 알고리즘1
for 숫자가 1부터 100까지 반복
합계출력
📍 알고리즘2
(1+100)*(100)/2
합계출력
| 구분 | 성능 |
|---|---|
| 알고리즘1 | 데이터개수 → 비례해 시간이 늘어남 📈 |
| 알고리즘2 | 데이터개수 → 관계없이 시간 동일 ✅ |
🧩 빅오 표기법 (Big-Oh Notation): O(f(n)) 형태
- O = order
- O(1) 성능 > O(n) 성능

