본문 바로가기
반응형

전체 글73

C++ STL Vector 컨테이너 개요 vector는 순차 컨테이너 (Sequence container)로 배열처럼 사용할 수 있다. 일반 배열보다 많은 기능을 제공하며 배열을 기반으로 만들어진 컨테이너이다. Vector 컨테이너 생성자 vector ve vector ve(n) : 빈 벡터 또는 n만큼 빈 벡터를 생성한다. vector ve(n, x) : x로 초기화된 n만큼의 벡터 ve를 생성한다. 복사 생성자도 존재한다. 멤버 함수 ve.assign(n, a) : ve값에 a 값으로 n개만큼 할당한다. ve.at(i) : ve의 i 번째를 참조한다. ve.front( ) : ve의 맨 첫 원소를 참조한다. ve.back( ) : ve의 맨 마지막 원소를 참조한다. ve.begin( ) : ve의 첫 원소로 하는 반복자 ve.rbegi.. 2021. 5. 24.
Queue, 원형 Queue와 배열기반 Queue 개념 자료가 앞에서 삽입되고 앞에서 먼저 삭제가 되는 선형 리스트. FIFO(First In First Out) 구조이다. 가장 먼저 삽입 된 자료가 가장 먼저 삭제되는 형태이다. Queue의 멤버 rear : 현재 맨 뒤 요소를 말한다. 새로운 요소가 맨 뒤 요소가 된다. front : 현재 맨 앞 요소이다. addq : 자료를 삽입하는 함수 deleteq : 자료를 삭제하는 함수 큐의 문제점, 대안 큐를 삽입시 rear가 증가하고 front 역시 증가한다. 큐가 꽉 찰 경우 front와 rear를 조정해야 하는 소요가 발생한다. 원형 큐를 만들면 계속 순환하기에 조정할 필요가 없어진다. 원형 큐 원형 큐는 front와 rear가 계속 돌고 돌기 때문에 원형 큐라 한다. 마치 큐가 원형으로 되어있는 것.. 2021. 5. 23.
Stack 개념과 배열 기반 스택 개념 스택은 데이터가 들어갈 때마다 쌓이는 것처럼 보여 Stack이라 부른다. 가장 끝단에서 삽입과 삭제가 모두 일어난다. 후입 선출 형식으로 가장 마지박에 삽입된 원소가 가장 먼저 삭제된다. Last In First Out 이라고도 하며 LIFO구조이다. 스택의 주요 기능 stack의 삽입 push 요소 하나를 삽입하는 과정으로 맨 윗 부분에 추가된다. stack의 삭제 pop 가장 위에 있는 요소를 제거한다. stack의 읽기 peek top에 위치한 값을 삭제하지 않고 반환한다. stack의 범위 검사 isEmpty 스택이 꽉 차있는지 검사한다. 스택의 활용 실행 취소 및 뒤로가기뒤로 가기 : 주로 undo, 뒤로 가기를 눌렀을 때 이전에 방문했던 곳이나 이전 상태로 되돌려질 것이다. 이 기능을 구.. 2021. 5. 22.
대칭키 암호화 DES Data Encryption Standard 개요 NIST가 공모하여 한 때 표준으로 이용한 암호 알고리즘이다. 현재는 많이 사용하지 않으며 대부분 AES를 사용하고 간혹 DES 사용하거나 TDES를 사용하기도 한다. 섀넌은 암호다운 암호는 혼돈과 확산을 만족해야 제대로 된 암호라 할 수 있다고 하였다. DES는 파이스텔 구조를 기반으로 한 블록 단위 암호화 알고리즘이다. 대칭키 암호화로 암복호화할 때 쓰는 키가 동일하다. 때문에 키 분배 문제가 있으나 공개키를 이용하여 안전하게 전달할 수 있다. DES의 특징 파이스텔 구조를 기반으로 한 라운드가 있으며 총 16라운드를 실시하여 암호화를 진행한다. 64비트 블록 단위로 암호화한다. 56비트의 키길이를 갖는다. 키 공간은 64이나 1비트는 패리티 비트이기에 실직적으로는 56비트이다 DES 동작 1 .. 2021. 5. 19.
NAT 개념과 종류 Network Address Translation NAT는 Network Address Translation으로 네트워크 주소를 변환, 즉 IP를 변환하는 기술이다. 이 기술은 현재 네트워크 계층에서 단비 같은 존재이다. 아마 이 기술이 없었다면 지금의 IPv4 버전으로는 벌써 IP가 다 고갈되고도 남았을 것이다. 물론 NAT의 장점은 이것만이 아니다. 1. NAT의 종류 구분 1. Static NAT 공인 IP와 사설 IP가 1:1로 연결되어 있는 형태이다. 1:1 형태이기에 IP 주소를 효율적으로 쓰지는 못한다. 2. Dynamic NAT 내부 사설 IP보다 외부 공인 IP가 많은 또는 다대다 연결이다. N:M 연결 보통 외부 공인 IP가 많을 경우 사용하는 방식이다. 3. PAT 주변에서 주로 사용하는 방식으로 1:N 연결이다. 1개의 공인 IP로.. 2021. 5. 16.
Java 입출력 BufferedReader, BufferedWriter BufferedReader Scanner가 등장하기이전에는 BufferedReader를 사용했습니다. Scanner보다 기능이 한정적이고 코딩에도 Scanner보다는 번거롭기 때문입니다. 그런데 아직도 지금도 사용하는 이유에는 속도 때문입니다. Buffered Reader 사용 import java.io.*; public class Main{ public static void main(String args[]) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str=br.readLine(); } } import java.io.*; throws IOException을 꼭 포함해야.. 2021. 5. 15.
반응형