프로토콜 / OSI 모델 / TCP/IP 모델 / 캡슐화/역캡슐화 / 헤더 1. OSI 모델 과 TCP/IP 모델 네트워크에서는 데이터를 주고 받기 위한 통신 규격(프로토콜)이 정해져 있음 1-1. OSI 모델 네트워크 기술의 기본이 되는 모델 데이터의 송수신은 컴퓨터에서 컴퓨터로 데이터를 전송하는 것. => 7개의 계층(Layer)으로 나눠짐 Layer 이름 설명 7 응용 계층 (Application Layer) 이메일,파일전송 , 웹 사이트 조회 등 애플리케이션에 대한 서비스 제공 6 표현 계층 (Presentation Layer) 문자코드, 압축, 암호화 등의 데이터 변환 5 세션 계층 (Session Layer) 세션 체결, 통신 방식 결정 4 전송 계층(Transport Layer) 신뢰할 수 ..
🏷️CS
네트워크 / 인터넷 / 패킷 / 비트 / 바이트 / 랜 / 왠 / 인터넷 서비스 제공자 / 서버 / DMZ 01.네트워크의 구조 1-1 패킷(packet) 정의 : 네트워크를 통해 전송되는 데이터의 작은 조각 ( 데이터를 포장하고 있는 택배 같은 역할) 큰 데이터가 있더라도 작게 나누어서 보내는게 원칙 왜? 대역폭을 너무 많이 차지(점유)하면 다른 패킷의 흐름을 막을 위험 *대역폭(bandwidth) : 네트워크에서 이용 가능한 최대 전송 속도. 정보를 전송할 수 있는 단위 시간당 전송량 데이터를 전송할 때는 패킷으로 나누어서 전송하더라도 목적지에 도착하면 원래 데이터 형태로 복원하는 작업 필요 실제로 전송된 패킷을 받아보면 순서가 섞여 있음. => 각 패킷에 순서대로 번호를 부여하여 완전하게 복원할 수..
📍 2941 (크로아티아 알파벳) 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net # 크로아티아 알파벳 import sys input = sys.stdin.readline # 입력 받아오기 alphabet = input().strip() # 변경되는 알파벳 리스트로 생성해두기 change = ['c=','c-','dz=','d-','lj','nj','s=','z='] cnt = 0 # 알파벳 수 초기화 # 입력받은 문자열에 변경되는 알파벳이 존재하는 체크 for c in ..
코딩 테스트 준비를 하다보면 2차원 이상의 배열을 생성하는 경우가 많다. 어떤 경우에는 배열의 모든 요소를 초기에 0으로 초기화하고 문제를 풀도록 되어 있다. 만약에 [[0,0,0],[0,0,0]] 형태의 2차원 배열을 생성한다고 할 때 arr1 = [[0 for _ in range(3)] for _ in range(2)] arr2 = [[0]*3]*2 위 두 코드로 만들 수 있지만 두 배열에는 엄청 큰 차이가 있다. arr1의 경우 각 내부 리스트는 독립적인 객체로 존재하며, 각각의 요소에 대한 변경이 다른 리스트에 영향을 미치지 않는다. arr1[0][0] = 1 print(arr1) >> [[1, 0, 0], [0, 0, 0]] 그러나, arr2의 경우 하나의 리스트 객체를 두 번 반복하여 2차원 ..
📍1157 ( 단어공부) 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net import sys input = sys.stdin.readline s = str(input()).strip() s = s.upper() cnt = [] lst = list(set(s)) for i in lst : cnt.append((i,s.count(i))) cnt = sorted(cnt,key=lambda x : x[1],reverse=True) if len(cnt) > 1: if cnt[0][1] == cnt[1][1]: print('?') else: print(..