분류 전체보기
-
Network - VPNCS/Network 2021. 2. 21. 21:53
VPN VPN(Virtual Private Network) 공중망에 터널링 기술(암호화)을 적용시킨 가상 사설망이다. 전용망의 고비용을 대체하기 위해 나타났다. 암호화된 터널을 통해 인터넷에 연결하여 온라인 프라이버시를 확보하고 민감한 데이터를 보호한다. 상호 연결 부분에 전용VPN장치나 그러한 기능이 내장되어 있는 라우터나 방화벽 설치가 필요하다. VPN장치: 통신 데이터를 암호화 한 수 인터넷으로 보내고 수신측에서는 암호화를 해제한다. VPN의 장단점 장점 비용이 저렴하다.(전용망 구축에 비해) 단점 VPN서버와 암호화 통신을 하기 때문에 속도가 느리다. reference this1.tistory.com/entry/VPN%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B..
-
자료구조 - 이진검색트리(ALV, RED-BLACK)CS/자료구조 2021. 2. 21. 20:10
Balanced Binary Search Tree AVL트리란? 균형잡힌 이진검색 트리이다. 오른쪽 서브트리와 왼쪽 서브트리의 높이 차를 1까지만 허용한다. 1보다 큰 경우 tree modification연산을 진행해여 재배열 한다. 트리의 높이는 항상 logn으로 연산에 대한 시간복잡도도 O(logn)이 된다. Red-Black Tree란? 균형잡힌 이진검색 트리이다. 트리의 모든 노드에 블랙 또는 레드 색을 칠하되 레드블랙 특성을 만족해야한다. 특성은 다음과 같다. 루트는 블랙이다. 모든 리프는 블랙이다. 레드 노드는 연속으로 올 수 없다. 루트 노드에서 임의의 리프 노드에 이르는 경로에서 만나는 블랙 노드의 수는 모두 같다. 여기서 리프 노드는 일반적인 의미의 리프노드와 다르다. 모든 NIL포인터가..
-
[백준]14502: 연구소 - JAVA문제풀이/백준 2021. 2. 21. 17:41
[백준]14502: 연구소 www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 풀이 조합 + 탐색문제이다. 조합을 사용하는 이유는 벽의 위치를 뽑을 때 순서가 상관없기 때문에 조합을 사용했다. 조합을 구현할 때 다음에 뽑을 벽의 위치를 부분이 까다로웠다. 이전의 뽑은 벽의 위치보다 이후의 위치에서 벽을 선택해야 했는데 입력받은 node는 이차원 배열로 되어있어 y값을 어떻게 처리해야 할지 고민이 되었다. 처음에는 다음과 같이 구현하였다. for(int i = x; i < n..
-
[백준]1937: 욕심쟁이 판다 -JAVA문제풀이/백준 2021. 2. 21. 15:02
[백준]1937: 욕심쟁이 판다 www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n*n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에서 www.acmicpc.net 풀이 처음에는 DFS만 사용해서 풀었더니 시간초과가 났다! DP와 DFS를사용해 메모이제이션 하면서 풀어야 한다. dp에 저장되는 값은 다른 위치에서 현재 위치까지 이동할 수 있는 거리 중 최대값을 의미한다. 그러므로 이동하면서 계속 갱신해 주어야 한다. 즉 현재위치가 x, y이고 이동할 위치가 nx, ny라고 할 때 dp[x][y] = dp[nx][ny] + 1과 dp..
-
[프로그래머스]징검다리 건너기 - JAVA문제풀이/프로그래머스 2021. 2. 21. 13:41
[프로그래머스]징검다리 건너기 programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 풀이 이분탐색 문제이다! 이분탐색을 하지 않고 풀면 시간초과가 날 것이다! 전형적인 이분탐색의 유형으로 최소값, 최대값을 건널 수 있는 프렌즈의 수 범위로 둔다. 처음에는 min을 0, max를 건널 수 있는 프렌즈의 최대값으로 둔 다음, mid이상의 프렌즈가 건널 수 있다면 min을 mid + 1로, mid이상의 프렌즈가 건널 수 없다면 max를 mid - 1로 변경하여 또 탐색한다. 이때 건널 수 있는지 없는지 판단하는 방법은 간단하다. stones의 각 ..
-
WEB - WASCS/WEB 2021. 2. 20. 21:42
WAS(Web Application Server) 웹 서버(web server) 정적 컨텐츠(html, png, css 등)를 제공하는 서버이다. 클라이언트에서 요청이 올 때 가장 앞에서 요청을 처리한다. ex) Apache, nginx WAS 동적 컨텐츠(jsp, php 등)를 제공하는 서버이다. DB조회등 애플리케이션에 대한 로직을 실행하여 웹 서버로 다시 반환해 준다. 웹 서버와 DBMS사이에서 동작하는 미들웨어로서 jsp, servlet을 실행시킬 수 있는 컨테이너 기반으로 동작한다. ex) Tomcat, JBoss, Jeus 웹 서버와 WAS를 나눠 사용하는 이유 WAS는 정적, 동적 처리 둘다 가능하다. 그러므로 웹 서버를 사용하지 않더라도 웹 서비스를 할 수 있지만 웹 서버와 WAS를 나눠 ..
-
자료구조 - 이진검색트리CS/자료구조 2021. 2. 20. 20:09
Binary Search Tree 이진검색트리 이진트리 이면서 각 노드에 하나의 키를 저장하고, 루트 노드에 대해 왼쪽 서브트리에 있는 키들은 루트의 키 보다 작거나 같고, 오른쪽 서브트리에 있는 키들은 루트의 키 보다 크거나 같다. 트리의 높이는 평균 logn으로 연산에 대한 시간 복잡도도 평균 O(logn)이다. 이진검색트리의 연산 Search: 키를 탐색한다. 시간복잡도는 O(h). h는 트리의 높이를 의미한다. Succesor: 노드 x의 Succesor란 x의 키보다 크면서 가장 작은키를 가진 노드를 탐색한다. 이때 모든 키들이 서로 다르다고 가정한다. 시간복잡도는 O(h). Predecessor: 노드 x의 Predecessor란 x의 키보다 작으면서 가장 큰 키를 가진 노드를 탐색한다. 이때..