본문 바로가기

전체 게시글376

[CS] TCP 연결이라는 착각 / 3-way-handshake 3 Way-Handshake 전송제어 프로토콜(TCP)에서 통신을 하는, 연결을 위해 주로하는 방법론이다. 서로 연결이 잘 되어있는지 확인하는 과정/방식이다. Client와 Sever에서 주고받는 데이터의 단위는 Segment 이다. 위 그림을 통해 알 수 있듯이 클라이언트가 하나의 데이터를 Server측으로 보내는데 이는 Segment이다. 또한, flag가 Syn(1000) 로 set 된 Segment이다. Client에서 데이터를 보내기 전부터, Sever측에서는 계속 Listen 하며, Segment가 오면 '누가 나랑 통신하자고 연락이 왔네?' 라고 판단한다. Sever 측에서는 응답을 잘 받았다는 의미로 받은 시퀀스넘버에 +1을 해서 1001번과 자신의 시퀀스넘버 4000번을 보낸다. Clie.. 2023. 2. 24.
[BaekJoon] 백준 알고리즘 10250번 / ACM 호텔 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모.. 2023. 2. 23.
[BaekJoon] 백준 알고리즘 2869번 / 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 접근방법 필자는 이 문제를 등차수열의 일반항을 구해서 풀었다. 아래 그림을 보자 일수는 좌항 ( V - B ) / ( A - B )의 값 보다 같거나 커야 한다. 따라서, 무조건 올림하는 cei.. 2023. 2. 23.
[BaekJoon] 백준 알고리즘 1193번 / 분수찾기 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 첫째 줄에 분수를 출력한다. 접근방법 급격한 난이도 증가로 인해서 어려움이 굉장히 많았다. 이 문제를 풀기 위해서는 계차수열에 대한 지식이 어느정도 잡혀 있어야지 .. 2023. 2. 23.
[BaekJoon] 백준 알고리즘 229번 / 벌집 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 접근방법 이 문제는 솔직히 수학적 사고가 없는 필자에겐 어려운 문제였다. 해답까지 많은 시간이 소요되었다. 자, 아래 사진을 보자 가장 .. 2023. 2. 23.
[BaekJoon] 백준 알고리즘 2563번 / 색종이 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변과 도화지의 왼쪽 변 사이의 거리이고, 두 번째 자연수는 색종이의 아래.. 2023. 2. 22.