2025.05.21.~ 2025.06.20.
몰랐는데 k디지털역량강화 강좌는 국취제 1유형도 본인부담금이 발생한다. 4만5천원을 결제했다.
열심히 들어봐야겠다.
2025.05.21.~ 2025.06.20.
몰랐는데 k디지털역량강화 강좌는 국취제 1유형도 본인부담금이 발생한다. 4만5천원을 결제했다.
열심히 들어봐야겠다.
정답을 빠른 시간 내에 출력: 요구하는 자원이 최소 -> 성능, 효율이 좋다
performance (efficiency) = 결과/비용
-> 최선, 평균의 경우는 과장광고.. 최악의 경우로 말해야 사용자의 만족도에 도움이 됨
최악의 경우를 보장하는 것
cpu가 더 비쌈
예) n 개의정수를입력받아서합을구하는프로그램
1. 정수를 하나씩 읽어서 합을 구함
int i, x, sum;
for ( i = 0, sum = 0; i < n; i++ ) {
cin >> x;
sum += x;
}
cout << sum;
- 공간 복잡도 O(1)
n의 크기에 관계없이 일정한 공간만을 요구함
변수 3개의 공간만 쓰면 됨, n번 실행함
- 시간 복잡도 O(n)
n의 크기에 비례해서 시간이 걸림
for문 n번 루프
2. 정수를 하나씩 읽어서 저장한 후에 합을 구함
int i, *x, sum;
x = new int[n];
for ( i = 0; i < n; i++ )
cin >> x[i];
for ( i = 0, sum = 0; i < n; i++ )
sum += x[i];
cout << sum;
int i, *x, sum;
x = new int[n]; // O(1) - 메모리 할당 (크기는 n이지만 상수 시간에 이루어짐)
for ( i = 0; i < n; i++ ) cin >> x[i]; // O(n) - 입력을 n번 받음
for ( i = 0, sum = 0; i < n; i++ ) // O(n) - n개의 요소를 더함
sum += x[i];
cout << sum; // O(1) - 출력 한 번
- 공간 복잡도 O(n)
n의 크기에 비례해서 공간을 요구함
n개의 저장공간 요구
- 시간 복잡도 O(n)
n의 크기에 비례해서 시간이 걸림
for문 n번 루프 두번
O(n)+O(n)=O(n)
(asymptotic complexity)
성능은 입력의 크기에 따라 결정됨
n:입력의 크기
시간복잡도를 n의 함수로 표현 -> f(n)
성능 그래프: (n,f(n))
1) 입력이 증가하면 시간도 증가 (일반적)
2) 입력이 증가해도 시간은 일정 (이상적)
3) 입력이 증가하면 시간이 감소 (있을수없음)
시간 복잡도는 매우 큰 입력 (reasonably large length of input) 에 대해서 측정함
n이 매우 큰 경우에 대해서만 의미 잇는 성능이 측정됨
동일한 크기의 입력을 처리할 때, g(n)은 f(n)보다 더 많은 시간을 요구함
= g(n)은 f(n)보다 성능이 나쁨
= g(n)은 f(n)의 최악의 경우
f(n)의 상한은 g(n)
f(n) ≤ g(n)
요약
(1) 최악의 경우의 성능 -> 보장
(2) 공간 복잡도보다 시간 복잡도가 더 중요
(3) (입력의 크기, 계산 시간) -> (n, f(n))
(4) 점근적 분석법 -> 매우 큰 입력을 가정
(5) 표준 함수를 사용 ->1, n, n², 2n, log n
(6) Big-O표기법: (1)+(2)+(3)+(4)+(5)
빅오 표기법의 정의
f(n) is O( g(n)) as n->∞
3번 : g(n)이 5n이든 10n이든 f(n)=n에 비례함
성질 1
어떤 n > n₀ 에 대해서 g₁(n) < g₂(n) 이라면 f(n) = O( g₁(n) )은 f(n) = O( g₂(n) )을 의미한다.
예) f(n) = O(n)라면 f(n) = O(n²)이다.
증명)
f(n) ≤ M g₁(n) --- (정의 1)
g₁(n) < g₂(n)
-> f(n) ≤ M g₁(n) ≤ M g₂(n)
-> f(n) ≤ M g₂(n)
성질 2
어떤 상수 k에 대해서 f(n) = O( k g(n) )이라면, f(n) = O( g(n) )이다.
예) f(n) = O( 5n² )라면 f(n) = O( n² )이다.
성질 3
f(n) = O( g₁(n)+ g₂(n) ) 이고 어떤 n > n₀ 에 대해서 g₁(n) < g₂(n) 이라면 f(n) = O( g₂(n) )이다.
예) f(n) = O( n²+n )이라면 f(n) = O( n² )이다.
자료구조 퀴즈 1~4주차 (0) | 2025.04.24 |
---|---|
자료구조 1주차 자료구조의 소개 (1) | 2025.04.22 |
우리가 사용하는 다양한 앱에서는 ( )를 효율적으로 관리하는 기법이 구현되어 있다.
답: 자료
기차표 예매와 수강 신청 등을 관리하는 시스템에서는 자료와 함께 ( )를 관리한다.
답: 순서
다음 문장의 빈칸에 들어갈 말은?
컴퓨터에 저장할 수 있도록 프로그래밍 언어에서 미리 정의된 값들의 집합을 ( )이라고 한다.
답: 자료형
16 bit로 세상의 모든 문자를 표현할 수 있는 체계를 ( )라고 한다.
답: 2. Unicode
해설:
정수형 표현에서 1의 보수와 2의 보수는 ( )을(를) 표현하기 위한 방법이다.
답: 음수
다음 문장의 참과 거짓을 판정하시오.
정렬된 리스트에서는 자료의 위치를 예측할 수 있기 때문에 효율적인 검색이 가능하다.
답: 참
자료를 만난 순서에 따라서 저장하는 구조를 다음 중에서 선택하시오.
답: 1
족보와 같은 계층 구조를 효율적으로 표현하는 구조를 ( )(이)라고 한다.
답: 트리
특정한 프로그램을 수행하는 데 요구되는 메모리의 크기를 ( )(이)라고 한다.
답: 공간 복잡도
점근적 분석법에서 성능은 ( )에 따라서 결정된다.
답: 입력의 크기
다음 네 가지 표현 중에서 그 의미가 다른 것은 무엇인가?
답: 1
해설:
f(n) = O(5n log n)이라면, f(n) = O(g(n))이다에서 g(n)에 올 수 없는 함수는?
답: 2
If g(n) ≥ M f(n) for n > n₀, then g(n) = ( ). 에서 ( )에 들어갈 식은?
답: Ω(f(n))
해설:
g(n) ≥ M·f(n) for n > n₀ 은 f(n)에 대한 하한(bound from below)을 의미
f(n) = O(n² + n)이라면, f(n) = O(g(n))이다. g(n)에 올 수 없는 함수는?
답: 2
해설:
f(n) = O(n² + n) 은 O(n²)와 같다고 볼 수 있음
(n²), (n³), (n⁴) → f(n)의 상한이 될 수 있음
하지만 n은 f(n)보다 작기 때문에 상한으로는 올 수 없음
n 명인 반의 학생들이 모두 키 순으로 앉아있다. 여기에 새로운 학생 한 명이 전학을 왔다. 이 학생을 그냥 맨 앞에 앉도록 할 때, 걸리는 시간 복잡도는 무엇인가?
답: 1
int func (int n) {
for (k = 1; k < n; k = k * 10)
printf("hello");
}
다음 함수의 시간 복잡도를 n의 함수로 나타내시오.
답: 1
다음 중 시간 복잡도가 가장 큰 함수는 무엇인가?
답: 1
해설:
(시간 복잡도 크기 순으로 정리):
𝑂(𝑛¹⁰⁰) → 다항식 (Polynomial)
𝑂(2ⁿ) → 지수 함수 (Exponential)
𝑂(𝑛!) → 팩토리얼 (Factorial)
𝑂(𝑛ⁿ) → 지수보다도 빠르게 커지는 초지수 함수
리스트의 가장 중요한 성질은 모든 원소들이 ( )에 1:1로 대응된다는 점이다.
답: 인덱스
연결 리스트는 리스트를 ( )에 기반하여 구현한 자료구조이다.
답: 포인터
“정렬되지 않은 리스트에서 원소를 추가하는 연산은 정렬된 리스트에서 원소를 추가하는 연산보다 더 좋은 시간 복잡도를 보인다”는 문장의 참과 거짓을 쓰시오.(참 또는 거짓을 쓸 것)
답: 참
n개의 원소를 가진 배열에 대한 이진 검색의 시간 복잡도는 ( )이다.
오답: O(n) -> 이건 선형검색
정답: O(log n)
해설:
매번 검색 범위를 절반으로 줄임
n개의 원소를 가진 배열에 대한 선형 검색은 최선의 경우에는 [ ]의 시간이 걸리지만 최악의 경우에는 [ ]의 시간이 걸린다. 빈칸을 Big-O 표기법으로 표현한 쌍 중에서 맞는 것은?
답: 1
해설:
최선의 경우: 첫 번째 원소에서 찾음 → O(1)
최악의 경우: 마지막에 찾거나 없을 때 → O(n)
선형 검색과 이진 검색 연산 중에서 분할 정복 알고리즘의 기법으로 설계된 검색 연산은 ( ) 연산이다.
답: 이진 검색
다음은 알파벳 순으로 정렬된 배열이다.
{BAT, CAT, EAT, FAT, JAT, LAT}
여기에 DAT라는 원소를 추가할 때, 가장 먼저 그 위치를 바꾸는 원소는 무엇인가?
답: 4
다음은 알파벳 순으로 정렬된 배열이다.
{BAT, CAT, EAT, FAT, JAT, LAT}
여기에 EAT라는 원소를 제거할 때, 가장 먼저 그 위치를 바꾸는 원소는 무엇인가?
답: 2
n개의 원소를 가진 정렬된 배열에 대한 추가 연산과 삭제 연산의 시간 복잡도는 ( )이다.
답: O(n)
배열에서는 원소의 위치와 접근 시간의 연관성이 없다. 이러한 성질을 ( )라고 한다.
답: random access
연결 리스트는 데이터와 링크의 결합인 ( )로 이루어져 있다.
답: 노드 (node)
연결 리스트의 각 노드는 다음 노드를 가리키는 ( )을(를) 포함하고 있다.
답: 링크
각 노드가 하나의 노드와 연결된 연결 리스트를 ( )(이)라고 한다.
답: 단일 연결 리스트
n개의 원소가 저장된 단일 연결 리스트의 제거 연산의 시간 복잡도를 다음 중에서 선택하시오.
답: 4
각 노드가 두개의 노드와 연결된 연결 리스트를 ( )(이)라고 한다.
답: 이중 연결 리스트
“n개의 원소가 저장된 이중 연결 리스트의 제거 연산의 시간 복잡도는 추가 연산의 시간 복잡도와 같다“라는 문장의 참과 거짓을 쓰시오. (참 또는 거짓을 쓸 것)
답: 참
해설: 삽입/삭제 모두 O(1) (단, 해당 노드를 알고 있는 경우)
“n개의 원소가 저장된 이중 연결 리스트의 제거 연산의 시간 복잡도는 단일 연결 리스트의 제거 연산의 시간 복잡도보다 더 크다“라는 문장의 참과 거짓을 쓰시오. (참 또는 거짓을 쓸 것)
답: 거짓
해설:
단일 연결 리스트는 이전 노드를 찾기 위해 O(n)이 걸릴 수 있지만,
이중 연결 리스트는 이전 노드를 쉽게 알 수 있어 제거 시 더 효율적일 수 있다
자료구조 2주차 성능 분석 (0) | 2025.04.24 |
---|---|
자료구조 1주차 자료구조의 소개 (1) | 2025.04.22 |
검색을 가장 빈번하게 사용하므로 가장 중요
자료를 한곳에 보관하기
검색을 쉽게 정렬한 리스트
도착한 순서대로 정렬한 리스트
족보를 표현하는 법
관계를 시각적으로 표현
공통된 속성을 추출하여 이를 이용하는 과정
추상 자료형: c++이나 Java의 클래스 개념으로 구현
어떤 성과를 얻기 위해서 얼마나 많은 자원을 투입하였는지 측정
성능이라고도함
= solution/resource
시간이 더 중요함 (비쌈)
입력된 자료의 크기에 따른 시간의 증가 속도를 표현
자료구조 2주차 성능 분석 (0) | 2025.04.24 |
---|---|
자료구조 퀴즈 1~4주차 (0) | 2025.04.24 |
https://www.kmooc.kr/view/course/detail/9030?tm=20250422164815
K-MOOC
www.kmooc.kr
1 | 자료구조의 소개 | 개요 | 퀴즈1 |
자료와 관리 | 퀴즈2 | ||
효율적인 기법 | 퀴즈3 | ||
2 | 성능 분석 (Performance Analysis) | 성능과 점근적 분석법 | 퀴즈1 |
Big–O 표기법 | 퀴즈2 | ||
Big–O 표기법의 예 | 퀴즈3 | ||
3 | 배열 (Array) | 리스트와 배열 | 퀴즈1 |
배열의 검색 | 퀴즈2 | ||
추가와 제거 | 퀴즈3, 과제 | ||
4 | 연결 리스트 (linked list) | 연결 리스트 | 퀴즈1 |
단일 연결 리스트 | 퀴즈2 | ||
이중 연결 리스트 | 퀴즈3, 토론 | ||
5 | 스택/큐 (stack.queue) | 스택과 연산 | 퀴즈1 |
스택의 응용 | 퀴즈2 | ||
큐와 연산 | 퀴즈3 | ||
특수한 큐 | 퀴즈4, 과제 | ||
6 | 정렬 (sorting) | O(n²) 정렬 | 퀴즈1 |
합병 정렬 | 퀴즈2 | ||
쾌속 정렬 | 퀴즈3 | ||
7 | 트리 (Tree) | 트리의 개념 | 퀴즈1 |
이진 트리 | 퀴즈2 | ||
중간시험 | |||
9 | 이진 탐색 트리 | 이진 탐색 트리의 개념 | 퀴즈1 |
이진 탐색 트리의 연산 (1) | 퀴즈2 | ||
이진 탐색 트리의 연산 (2) | 퀴즈3, 과제 | ||
10 | 우선 순위 큐 | 히입의 개념 | 퀴즈1 |
히입의 연산:추가와 제거 | 퀴즈2 | ||
11 | 탐색 | 선형 자료구조의 탐색 | 퀴즈1 |
계층적 자료구조의 탐색 | 퀴즈2 | ||
해쉬 | 퀴즈3 | ||
12 | 그래프 | 깊이 우선 탐색 알고리즘 | 퀴즈1 |
깊이 우선 탐색 알고리즘의 응용 (1) | 퀴즈2 | ||
깊이 우선 탐색 알고리즘의 응용 (2) | 퀴즈3 | ||
13 | 깊이 우선 탐색 | 그래프의 기본 개념 | 퀴즈1 |
그래프의 용어 | 퀴즈2 | ||
그래프의 기본 연산 | 퀴즈3 | ||
14 | 넓이 우선 탐색 | 넓이 우선 탐색 알고리즘 | 퀴즈1 |
넓이 우선 탐색 알고리즘의 응용 (1) | 퀴즈2 | ||
넓이 우선 탐색 알고리즘의 응용 (2) | 퀴즈3, 토론 | ||
기말시험 |
[K-MOOC] 컴퓨터 네트워크 2025.04.21 ~ (0) | 2025.04.21 |
---|
컴퓨터 간에 정보를 주고받을 수 있도록 연결하는 통신망
물리 계층부터 상위 계층으로 갈수록 데이터가 많아지므로 데이터를 압축함
상위 계층: 응용, 표현, 세션, 전송
하위 계층: 네트워크, 데이터 링크, 물리
네트워크에서 연결 간의 설정 부분은 보통 하위 계층에서 처리 (hw)
상위 계층은 프로세스 연결 (sw)
랜카드 드라이버: 데이터 링크 레이어
tcp: 전송 프로토콜
ftp 클라이언트: 소프트웨어
인터페이스: 상하위 계층 사이의 접속 방법
서비스: 상위 게층이 하위 계층을 사용하는 방법
계층별로 필요한 추가 정보는 헤더에 담음
라우터: 중개노드
요즘은 표현+응용 계층 통틀어 처리
ARP: IP->MAC
RARP: MAC->IP
ICMP: 컨트롤메시지전달
<---단순 ------------ 구조 ------------ 복잡--->
회선 교환 - 셀 릴레이 - 프레임 릴레이 - 패킷 교환
<---고정------------ 비트율 ------------ 가변--->
고비용 고신뢰 소규모네트워크
비용 저렴하고 선이 적음
hub 고장나면 전체 네트워크에 영향
single point failure
허브+허브
허브만 준비되면 많은 컴퓨터를 쉽게 연결할 수 있지만 허브가 고장나면 모든 노드 접속 불가
장점: 통신 회선에 추가 삭제가 간단함
단점: 통신 회선이 하나라 성능이 떨어지고 통신 회선의 특정 부분이 고장나면 전체 네트워크가 분리됨
장점: 대규모 네트워크 구성
단점: 하나만 분리되거나 끊어져도 전체 네트워크 성능 하락
실제 네트워크 구성
대규모- 링형
중규모- 버스형
소규모- hub
Local Area Network
Wide Area Network
◆ IP 프로토콜
⊙ 모든 패킷에 동일한 기준을 적용
⊙ 데이터 도착 순서를 100% 보장하지 않음
◆ IP 프로토콜에서의 QoS 지원
⊙ 서로 다른 QoS 기준을 제시
• 각 라우터에서 이를 처리함
◆ 전송 데이터의 종류별 특징
⊙ 영상 정보
• 대용량의 실시간 전송
• 전송 오류에 대해 관대함
⊙ 컴퓨터 데이터
• 실시간 전송 불필요
• 전송 오류에 대해 민감함
◆ 큐에 담지 못하는 패킷들에 의해 발생
◆ 발생 원인
⊙ 노드가 한꺼번에 네트워크 사용
⊙ 혼잡한 상황 발생
◆ 혼합 제어 알고리즘을 통해 패킷 로스 방지
◆ 얼마나 빠르게 보낼 수 있는지에 대한 성능 지표
⊙ 특정 시간의 지표, 평균 지표
◆ 각 링크 별로 달라짐
⊙ 보내는 쪽 < 받는 쪽
⊙ 보내는 쪽 > 받는 쪽
◆ 보내는 쪽의 처리량이 큰 경우
⊙ 라우터에서 드랍이 많이 발생하게 됨 → Bottleneck 발생
• Bottleneck 해소를 위해 흐름 제어가 필요함
https://www.kmooc.kr/view/course/detail/16382?tm=20250421183716
K-MOOC
www.kmooc.kr
컴퓨터 네트워크 과목 학습을 위해 우리 학교에서 운영하는 k-mooc 강의 컨텐츠를 수강하려고 한다.
한 강의가 짧아서 빠르게 진도를 나가는 것이 목표다.
수업계획서
주차 | 주차명(주제) | 차시 | 차시명(학습내용) | 평가방법 |
1 | 컴퓨터 네트워크와 인터넷 | 1-1 | 네트워크 개요 | 퀴즈 |
1-2 | 네트워크모델 | 퀴즈 | ||
1-3 | 네트워크기술 | 퀴즈 | ||
2 | 물리 계층 Ⅰ: 시간 및 주파수축에서의 신호 | 1-1 | 시간축에서의신호 | 퀴즈 |
1-2 | 주파수축에서의신호 | 퀴즈 | ||
1-3 | 데이터전송률및대역폭 | 퀴즈 | ||
3 | 물리 계층 Ⅱ: 디지털 데이터, 디지털 신호 | 1-1 | 디지털데이터와디지털신호의관계 | 퀴즈 |
1-2 | 인코딩기술 | 퀴즈 | ||
1-3 | 스크램블링기술 | 퀴즈 | ||
4 | 물리 계층 Ⅲ: 디지털 데이터, 아날로그 신호 | 1-1 | 디지털데이터와아날로그신호의관계 | 퀴즈 |
1-2 | 변조기술Ⅰ | 퀴즈 | ||
1-3 | 변조기술Ⅱ | 퀴즈 | ||
5 | 물리 계층 Ⅳ: 아날로그 데이터, 디지털 신호 | 1-1 | 아날로그데이터와디지털신호의관계 | 퀴즈 |
1-2 | Pulse Code Modulation | 퀴즈 | ||
1-3 | Delta Modulation | 퀴즈 | ||
6 | 데이터 링크 계층 Ⅰ | 1-1 | 가장간단한네트워크, CSMA/CD | 퀴즈 |
1-2 | MAC Address | 퀴즈 | ||
1-3 | 오류검출 | 퀴즈 | ||
7 | 데이터 링크 계층 Ⅱ | 1-1 | 프레이밍 | 퀴즈 |
1-2 | 스위치 | 퀴즈 | ||
1-3 | ARP | 퀴즈 | ||
8 | 중간고사 | |||
9 | 데이터 링크 계층 Ⅲ | 1-1 | Switch 구조 | 퀴즈 |
1-2 | STP | 퀴즈 | ||
1-3 | VLAN | 퀴즈 | ||
10 | 네트워크계층Ⅰ | 1-1 | 네트워크 계층 개요 | 퀴즈 |
1-2 | 인터넷 프로토콜(IP) | 퀴즈 | ||
1-3 | 데이터평면과 제어평면 | 퀴즈 | ||
11 | 네트워크계층Ⅱ | 1-1 | 라우팅 프로토콜 | 퀴즈 |
1-2 | 외부 라우팅과 SDN | 퀴즈 | ||
1-3 | 기타 네트워크 프로토콜 | 퀴즈 | ||
12 | 네트워크전송계층Ⅰ | 1-1 | 전송 계층 개요 | 퀴즈 |
1-2 | 신뢰적 데이터 전송 원리 | 퀴즈 | ||
1-3 | 파이프라인 프로토콜 및 혼잡 제어 원리 | 퀴즈 | ||
13 | 네트워크전송계층Ⅱ | 1-1 | TCP 개요 | 퀴즈 |
1-2 | TCP 동작 원리 | 퀴즈 | ||
1-3 | UDP와 RTP | 퀴즈 | ||
14 | 네트워크전송계층Ⅲ | 1-1 | 네트워크 응용 계층 개요 | 퀴즈 |
1-2 | 웹 HTTP 그리고 DNS | 퀴즈 | ||
1-3 | 이메일, 스트리밍 CDN P2P | 퀴즈 | ||
15 | 기말고사 |
[K-MOOC] 자료구조 2025.04.22 ~ (0) | 2025.04.22 |
---|