Github & Portfolio
Total(206)
-
[컴퓨터네트워크] TCP의 3-way/4-way handshake
3-way handshake TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish)하는 과정 양 쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기 전에 한 쪽에서 다른 쪽이 준비되었다는 것을 알 수 있도록 한다. 즉, TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. A 프로세스(Client)가 B 프로세스(Server)에 연결을 요청 1) A → B: SYN 접속 요청 프로세스 A가 연결 요청 메시지 전송(SYN) 송신자가 최초로 데이터를 전송할 때 Sequence Number를 임의의 랜덤..
-
[2021-06-19] Today I Learned
👉 Problem Solving 백준 5문제 14053 - 로봇 청소기 2563 - 색종이 2504 - 괄호의 값 1292 - 쉽게 푸는 문제 1748 수 이어 쓰기 1 👉 회고 내일은 요기요 코테보는 날! 코테 끝나고도 열심히!
-
[백준-1748] 수 이어 쓰기 1 / Python
1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) n = str(n) answer = 0 for i in range(len(n) - 1): answer += 9 * (i + 1) * 10 ** i answer += (int(n) - (10 ** (len(n) - 1)) + 1) * len(n) print(answer) 해설 한 자리 수까지의 합 -> 9 * 1 두 자리 수까지의 합 -> 90 * 2 세 자리 수까지의 합 -> 900 * 3 n의 자리수에 맞춰 위 값들을 계산한다. 그리고 자리 수에 맞게 10의 제곱수를 n에서 빼준 후 ..
-
[백준-1292] 쉽게 푸는 문제 / Python
1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net import sys input = sys.stdin.readline a, b = map(int, input().split()) temp = [] for i in range(1, 46): temp += [i] * i print(sum(temp[a - 1 : b])) 해설 i를 i번 반복해 temp에 저장한다. 이 때 46까지 for 반복문을 돌리는 이유는 46이 46번 반복되는 수까지의 길이가 1000을 넘는 최소가 되기 때문이다. 이후에 입력받은 값(인덱스)를 통해 합을 구한다.
-
[백준-2504] 괄호의 값 / Python
2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net import sys input = sys.stdin.readline s = input().rstrip() stack = [] answer = 0 for i in s: if i == ")": t = 0 while len(stack) != 0: top = stack.pop() if top == "(": if t == 0: stack.append(2) else: stack.append(2 * t) break elif top == "[": print(0) exit(0..
-
[백준-2563] 색종이 / Python
2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net import sys input = sys.stdin.readline paper = [[0] * 101 for _ in range(101)] for _ in range(int(input())): x, y = map(int, input().split()) for i in range(x, x + 10): for j in range(y, y + 10): paper[i][j] = 1 answer = 0 for row in paper: answer += row.count(1)..