분류 전체보기
[실전 압축 알고리즘] - 비트 연산
본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다. Bitwise Operators 연산자 예시 계산 쉬프트 과정 (2진법) 결과 활용 >1 5>>2 12 >> 2 2 * 2^-1 5 * 2^-2 12 * 2^-3 00010 -> 00001 00101 -> 00001 01100 -> 00011 1 1 3 2의 -n승 & (AND) 2 & 1 3 & 1 10 & 01 -> 00 11 & 01 -> 01 0 1 짝수 = 0 홀수 = 1 | (OR) 1 | 1 2 | 1 3 | 1 01 | 01 -> 01 10 | 01 -> 11 11 | 01 -> 11 1 3 3 방문 check ^ (XOR) 5 ^ 6 1 ^ 1 2 ^ 1 00101 ^ 00110 -> 00011 01 ^ 01 -> 00 10 ^..
C/C++ 궁금한 것 정리
C++은 C언어에 여러 가지 기능을 추가하거나 개선하여 만들어진 C의 상위 버전 C/C++ 차이점 C C++ 개발 방법 구조적 프로그래밍 객체 지향 프로그래밍 함수에서 변수 선언 함수의 선두에 선언 되어야 함 언제든지 중간에 변수 추가 가능 l C++에서 추가된 기능 내용 설명 범위 연산자 지역변수에 의해 가려진 전역변수 참조 명시적 캐스팅 (int)var가 아닌 int(var) 형식으로 캐스팅 인라인 함수 본체가 호출부에 삽입되는 함수 디폴트 인수 실인수가 생략될 때 형식 인수에 적용되는 기본값 함수 오버로딩 같은 이름의 함수를 여러 개 정의 태그가 타입으로 승격됨 구조체 태그로부터 변수를 바로 선언 가능 이름없는 공용체 공용체 이름없이 멤버들이 기억 장소를 공유 한줄 주석 // 로 줄 끝까지 주석 레..
객체지향 프로그래밍 (OOP, Object-Oriented Programming)
OOP l 정의 프로그램을 객체라는 기본 단위로 나누고, 객체들의 상호작용으로 서술하는 방식이다. l 객체란? 현실의 사물을 데이터로 표현하는 방법 하나의 역할을 수행하는 데이터의 묶음 l OOP 특징 특징 구현 방법 설명 추상화 ( Abstraction ) 캡슐화와 정보 은폐 사물들의 공통적 특징을 파악하여 이를 하나의 개념으로 다루는 것 객체의 효율적이고 안전한 사용을 위해 인터페이스를 설계하는 것이다. 캡슐화 ( Encapsulation ) 클래스 캡슐화는 변수와 함수를 하나의 단위로 묶는 것이다. 클래스를 통해 구현되며 해당 클래스의 인스턴스 생성을 통해 변수와 메소드 접근하도록 하는 것 정보 은닉/은폐 ( Information Hiding ) 접근 제한자 외부에서 사용하는 기능만 제공하고 필요 ..
데이터베이스 (DataBase)
※ 데이터베이스 ...더보기 어느 한 조직에서 업무 처리를 위해 다수의 응용 시스템 혹은 다수의 사용자들이 공용으로 사용하기 위해 통합, 저장된 운영 데이터의 집합 1. 특징 계속적인 진화 동시 공유 실시간 접근성 내용에 의한 참조 데이터 중복의 최소화 2. 구성 요소 l 개체 (Entity) 사람이 생각하는 개념이나 정보 단위와 같은 현실 세계의 대상체 서로 구별이 되는 하나하나의 대상 하나 이상의 속성 (Attribute)으로 구성 l 속성 (Attribute) 데이터베이스 구축하는 가장 작은 논리적 단위 개체 (Entity)의 특성, 상태를 기술하는 것 l 관계 (Relationship) 두 개 이상의 개체 또는 속성 간의 상호 연관성 관계의 종류 1) 1 : 1(일 대 일) 두 개체 간 구성 원소..
컴퓨터 네트워크 (Computer Network)
인터넷 l 저장 후 전달 전송 (Store-and-Forward Transmission) l 서킷 스위칭, 회선 교한 (Circuit Switching) l 패킷 교환 (Packet Switching) l 소켓 인터페이스 l 통신 규약 (Network Protocol) l 패킷 교환 네트워크에서의 전체 노드 지연을 일으키는 각각의 지연 프로토콜 계층 Protocl Layers l 응용 계층 (Application Layer) l 표현 계층 (Presentation Layer) l 세션 계층 (Session Layer) l 전송 계층 (Transport Layer) l ARQ (Automatic Repaet Request) : 자동 재전송 요구, 검출후 재전송 방식 l 적절한 타임 아웃 시간 예측 l 연결..
운영체제 (Operating System)
Operating System 운영체제 l 커널 l 부트스트랩 (Bootstrap Loader) l 프로그램의 주소 공간 l OS(커널)의 주소 공간 l 링커/로더 l 버퍼링 & 스풀링 l 인터럽트 l 시스템 콜 (모니터 호출) 컴퓨터 시스템 구조, 프로세서 프로세스 l 프로세스 제어 블록 PCB (Process Control Block) l 컨텍스트 스위치 / 문맥 교환 (Context Switch) 스레드 l 멀티 스레드 l 스레드 제어 블록 (TCB, Thread Control Block) l 스레드 풀 프로세스와 스레드 차이 스케줄링 동기화 관련 문제들 l 동기화 기법 l 모니터 l 교착 상태 (DeadLock) 메모리 관리 전략 l 스와핑 l 메모리 단편화 가상 기억장치 l 가상메모리 관리 기법..
컴퓨터 공학 전공 지식 요약 모음집
목차 Operating System Computer Network Database Data Structure Algorithm OOP Web Design Pattern Security ETC
[실전 압축 알고리즘] - C++ 입출력
본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다. 입출력 언어 입력 출력 C++ scanf / cin printf / cout Java Scanner System.out Python input print C++ #define _CRT_SECURE_NO_WARNINGS #include int main() { int n; scanf("%d", &n); printf("%d", n); return 0; } #define _CRT_SECURE_NO_WARNINGS는 Visual Studio에서만 넣어주면 됩니다. scanf는 나온 지 오래된 함수라 입력 값의 길이를 설정할 수가 없습니다. 따라서 보안에 취약하기 때문에 Visual Studio에서는 사용하지 말라는 경고가 출력되고 컴파일 에러가 발생하는..
[실전 압축 알고리즘] - 시간, 공간 복잡도
본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다. C++ 기준으로 작성하였습니다. 시간 복잡도 작동하는 알고리즘의 수행시간을 정량화하는 것을 의미합니다. 시간 복잡도를 표기하기 위한 방법에 빅-오, 빅-오메가, 세타 등이 있으며 일반적으로 최악의 케이스(Worst Case)를 가정하고 계산 하므로 빅-오 표기법을 빅오 표기법은 최고차항의 차수만을 표기합니다. N^3 + N^2 + N + 1 = O(N^3) 숫자 빨리 읽기 0을 3개씩 묶어서 숫자 단위를 빠르게 파악하도록 암기합니다. 숫자 읽기 1'000 천 1'000'000 백만 1'000'000'000 10억 배열을 만들 때 arr[10000000] 보다는 arr[10'000'000] 이런식으로 작은 따옴표를 넣어서 가독성을 높이고 실수를 ..