본문 바로가기
728x90

전체 글172

백준 17135번 캐슬 디펜스 1. 문제 설명 문제 링크 캐슬 디펜스는 성을 향해 몰려오는 적을 잡는 턴 방식의 게임이다. 게임이 진행되는 곳은 크기가 N×M인 격자판으로 나타낼 수 있다. 격자판은 1×1 크기의 칸으로 나누어져 있고, 각 칸에 포함된 적의 수는 최대 하나이다. 격자판의 N번행의 바로 아래(N+1번 행)의 모든 칸에는 성이 있다. 성을 적에게서 지키기 위해 궁수 3명을 배치하려고 한다. 궁수는 성이 있는 칸에 배치할 수 있고, 하나의 칸에는 최대 1명의 궁수만 있을 수 있다. 각각의 턴마다 궁수는 적 하나를 공격할 수 있고, 모든 궁수는 동시에 공격한다. 궁수가 공격하는 적은 거리가 D이하인 적 중에서 가장 가까운 적이고, 그러한 적이 여럿일 경우에는 가장 왼쪽에 있는 적을 공격한다. 같은 적이 여러 궁수에게 공격당할.. 2023. 1. 9.
운영체제(OS) 와 컴퓨터 운영체제와 컴퓨터 하드웨어와 소프트웨어(유저 프로그램)를 관리하는 일꾼인 운영체제 와 CPU, 메모리 등으로 이루어진 컴퓨터를 알아보자. 운영체제의 역할과 구조 운영체제의 역할 운영체제의 역할은 크게 네가지가 있다. 1.CPU 스케줄링 과 프로세스 관리:CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다. 2.메모리 관리:한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리한다. 3.디스크 파일 관리:디스크 파일을 어떠한 방법으로 보관할지 관리한다. 4.I/O 디바이스 관리: I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고 받는것을 관리한다. 운영체제의 구조 운영체제의 구조는 다음과 같다. 유저 프로그램이 맨 위에 있고 그다음으로 GU.. 2023. 1. 9.
백준 9613번 GCD 합 1. 문제 설명 문제 링크 양의 정수 n개가 주어졌을 때, 가능한 모든 쌍의 GCD의 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진다. 입력으로 주어지는 수는 1,000,000을 넘지 않는다. 출력 각 테스트 케이스마다 가능한 모든 쌍의 GCD의 합을 출력한다. import sys # 라이브러리 사용을 위한 import from math import gcd input = sys.stdin.readline # 테스트케이스 수 입력 for _ in range(int(input())): # 숫자들 입.. 2023. 1. 8.
백준 17103번 골드바흐 파티션 1. 문제 설명 문제링크 골드바흐의 추측: 2보다 큰 짝수는 두 소수의 합으로 나타낼 수 있다. 짝수 N을 두 소수의 합으로 나타내는 표현을 골드바흐 파티션이라고 한다. 짝수 N이 주어졌을 때, 골드바흐 파티션의 개수를 구해보자. 두 소수의 순서만 다른 것은 같은 파티션이다. 입력 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다. 출력 각각의 테스트 케이스마다 골드바흐 파티션의 수를 출력한다. 2. 코드 import sys input = sys.stdin.readline # 문제에서 주어지는 정수의 가장 큰 값 p = 10 ** 6 # 소수인지 아닌지 판별하기 위한 배열 .. 2023. 1. 8.
백준 1676번 팩토리얼 0의 개수 1. 문제 설명 문제링크 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500) 출력 첫째 줄에 구한 0의 개수를 출력한다. 2. 코드 import sys input = sys.stdin.readline # n의 범위 중 가장 큰값인 500을 기준으로 값을 저장 할 배열 생성 f = [1] * 501 for i in range(1, 501): # 반복문을 통해 이전 의 값을 이용하여 팩토리얼을 계산 이후 배열에 저장 f[i] = f[i - 1] * i # 입력 n = int(input()) # 0의 개수 zero_cnt = 0 # f[n]는 인트형 이므로 str으로 전환후 reverse를 위해 list로 .. 2023. 1. 8.
HTTP HTTP 기본적으로 HTTP는 전송 계층 위에 있는 애플리케이션 계층 으로서 웹 서비스 통신에 사용된다. HTTP/1.0부터 시작해서 발전을 거듭하여 지금은 HTTP/3이며 HTTP/1.0부터 HTTP/3 까지 알아보도록 하자 HTTP/1.0 HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었다. 이는 RTT 증가 를 불러오게 되었다. RTT 증가 서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크 를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점 이 있다. RTT 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간 RTT의 증가를 해결하기 위한 방법 매번 연결할 때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자 응답 시간이.. 2023. 1. 8.
728x90