* 네트워크란? 컴퓨터 네트워크: 분산된 컴퓨터를 통신망으로 연결한 것 인터넷->여러 종류의 컴퓨터 네트워크 중에서 가장 커다랗고 다양한 단말기들이 연결된 거대한 컴퓨터 네트워크, 전 세계의 컴퓨터가 서로 연결됨, TCP/IP(Transmission Control Protocol/Internet Protocol) 통신 프로토콜 사용 * 주소 체계 주소 체계를 이용하여 각각의 단말기들을 구분 MAC(Media Access Control) 주소:네트워크 장비의 하드웨어 주소, 48비트의 크기, 16진수로 표시, 구분자 ':', 로컬 네트워크 내에서 사용 IP 주소: 인터넷 사용, 버전 4(IPv4)와 버전 6(IPv6)의 두 가지 종류, 32비트 길이, 0.0.0.0부터 255.255.255.255까지 한 ..

ARP 스푸핑: 로컬 네트워크(LAN)에서 사용하는 ARP 프로토콜의 허점을 이용하여 공격 대상 호스트에게 MAC(Media Access Control) 주소를 속이는 공격 로컬 네트워크 환경에서는 IP 주소뿐만 아니라 MAC 주소가 통신에 함께 사용 호스트 A가 통신을 위해서 호스트 B의 MAC 주소를 알아내는 과정: A : 호스트 B의 MAC 주소를 찾는 ARP Request를 전송 B : 자기 자신을 찾는 ARP Request인 경우, 호스트 A에게 ARP Reply를 전송 A : B의 MAC 주소 정보가 포함된 B의 ARP Reply를 수신, ARP 테이블에 IP 주소와 함께 저장 ARP 헤더의 크기는 28바이트 Hardware Type은 Ethernet 환경이면 1, Protocol Type은 ..
HTTP HTTPS 정보를 마음대로 열람, 수정 가능 중간에 제3자가 볼 수 없음 암호화 없이 평문으로 전달 암호화하여 전달 속도가 빠름 보안성이 뛰어남 민감한 정보를 다룰 때 주의 필요 설치 및 인증서 유지에 추가 비용 HTTP: 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜, 80번 포트 사용, TCP/IP 위에서 작동, Method, Path, Version, Headers, Body 등으로 구성, 애플리케이션 레벨 HTTPS: HTTP에 데이터 암호화 추가, SSL 위에서 작동, 공개키 암호화 방식과 대칭키 암호화 방식을 함께 사용 공개키 방식: A키: 비공개키, 자신만 가지고 있음, B키: 공개키, 타인에게 제공 A키로 암호화 하면 B키로 복호화, B키로 암호화 하면 A키로 복호..
서브태스크 1,2,3,5,6: 가능한 K 거리의 쌍을 and로 묶은 뒤, and한 값들올 or로 묶어주면 된다. 만점 풀이: K 거리가 아니라 K 이상 거리만큼 떨어져 있는지 판별해 보자. 그러면 K 이상^K+1 이상으로 정답을 구할 수 있다. 답이 K 이상인지는 i+j가 K 차이나는 것이 있는지 or i-j가 K 차이나는 것이 있는지를 판별하면 되고, 이는 i+j가 k인 것이 있으면서, k-K 이하인 것이 있거나, k+K 이상인 것이 있는지 or i-j에 대해서 같은 게 있는지 판별하면 되고, 이는 i+j, i-j를 바탕으로 한 부분합으로 할 수 있다. #include "vision.h" #include using namespace std; int pval[401]; int mval[401]; int ..
서브태스크 1: 어떤 정점에서 다른 정점으로 가는 경로가 하나씩인 그래프는 무조건 트리이고, 모든 트리는 이 성질을 만족한다. 따라서 0~1,0~2... 간선을 이어주면 정답이 된다. 서브태스크 2: p[i][j]가 1인 i와 j는 한 포레스트에 있고, 아니면 다른 포레스트에 있는 그래프다. union find를 이용해 모순이 없는지를 파악하고, 모순이 있으면 -1, 모순이 없으면 서브태스크 1과 같은 트리를 만들어주면 된다. 서브태스크 3: 서브태스크 2와 비슷하게 하되, 트리 대신 모든 정점을 잇는 사이클을 만들어주면 된다. 서브태스크 5: 정답은 여러 트리들이 사이클로 이어진 형태로 나타낼 수 있고, 같은 트리에 있으면 p[i][j]가 1, 아니면서 연결되어 있으면 p[i][j]는 2이다. 이런 트..
오랜만에 부계 jjang36524로 나가 5솔을 했고, 75점이 올랐다. A번: 가장 먼저 찾을 수 있는 성질은 연산을 했을 때 abs(a-b)는 짝수라는 것이다. 1번 연산은 a-b를 변화시키지 않고, 2,3번 연산은 a-b를 2k만큼 변화시키기 때문이다. 따라서, a-b가 홀수이면 답은 -1이다. 그 외의 경우는 1번 연산 하나와 2번 혹은 3번 연산 하나만으로 가능한데, a==b인 경우는 1번 연산 하나만 필요하고, a==b==0이면 아무 연산도 필요하지 않다. 이를 구현해주면 된다. #include #include using namespace std; int main() { int T; ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> T; whi..
서브태스크 1: 가능한 모든 경우를 해본 뒤 3이 나오는 경우를 출력하면 된다. 쿼리의 수는 최대 36개이다. 서브태스크 2: 5점: 모든 문자에 대해서 이전 문자열+A,B,X,Y를 해 보면 된다. 25점: 첫 문자 외의 문자는 후보가 3개이고, 마지막 후보까지 정답이 안 나왔으면 마지막 후보가 자동으로 정답이다. 이를 통하면 2N+1로 줄일 수 있다. 92점:문자열들을 이어붙이면 쿼리를 더 효율적으로 할 수 있다. 이전 문자열을 S라 할 때, 첫 문자가 A라 할 경우 SBBSBXSBYSX라 하면 다음 글자가 B일 때 정답이 S의 길이+2, X일 때 S의 길이+1,Y일 때 S의 길이가 된다. 첫 글자와 마지막 글자를 제외한 글자를 이렇게 처리하면 N+3으로 92점을 맞는다. 95점(만점):첫 글자는 이분..