[CS] 애플리케이션 레이어 1 (HTTP)
·
CS
🚀HTTP 프로토콜의 작동 원리와 요청/응답 구조HTTP란?HTTP(HyperText Transfer Protocol)는 웹 상에서 클라이언트(브라우저)와 서버 간의 데이터 통신을 위한 프로토콜이다.텍스트, 이미지, 영상 등 다양한 자원을 요청하고 응답받는 데 사용된다. 작동원리1. 클라이언트가 특정 웹 페이지 요청2. HTTP 요청(Request) 메시지가 서버로 전송됨3. 서버는 요청에 맞는 데이터를 찾아 HTTP 응답(Response) 메시지를 클라이언트에게 전달4. 브라우저는 응답 데이터를 기반으로 웹 페이지를 렌더링 요청 구조GET /index.html HTTP/1.1Host: www.example.comUser-Agent: Mozilla/5.0Accept: text/html요청 라인: 메서드..
[Algorithm] 백준_컨베이어 벨트 위의 로봇_20055번 (JAVA) 🤖
·
Algorithm
📝문제https://www.acmicpc.net/problem/20055티어: 골드5 💡풀이문제 유형구현, 시뮬레이션 걸린 시간세번째 시돈데 60분 걸렸다 풀이 방법 도출(주석 참조)import java.util.*;import java.io.*;class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.next..
[Algorithm] 백준_마법사 상어와 비바라기_21610번 (JAVA)🪄
·
Algorithm
📝문제티어: 골드5 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기를 크기가 N×N인 격자에서 연습하려고 한다. 격자의 각 칸에는 바구니가 하나 있고, 바구니는 칸 전체를 차지한다. 바구니에 저장할 수 있는 물의 양에는 제한이 없다. (r, c)는 격자의 r행 c열에 있는 바구니를 의미하고, A[r][c]는 (r, c)에 있는 바구니에 저장되어 있는 물의 양을 의미한다. 격자의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N, N)이다. 마법사 상어는 연습을 위해 1번 행과 N번 행을 연결했고, 1번 열과 N번 열도 연결했다. 즉, N번 행의 아래에..
[Algorithm] 백준_상어 초등학교_21608번 (JAVA) 🏫
·
Algorithm
📝문제https://www.acmicpc.net/problem/21608티어: 골드5상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호가 매겨져 있고, (r, c)는 r행 c열을 의미한다. 교실의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N, N)이다.선생님은 학생의 순서를 정했고, 각 학생이 좋아하는 학생 4명도 모두 조사했다. 이제 다음과 같은 규칙을 이용해 정해진 순서대로 학생의 자리를 정하려고 한다. 한 칸에는 학생 한 명의 자리만 있을 수 있고, |r1 - r2| + |c1 - c2| = 1을 만족하는 두 칸이 (r1, c1)과..
[Algorithm] 백준_청소년 상어_19236번 (JAVA) 🐟
·
Algorithm
📝문제티어: 골드1  아기 상어가 성장해 청소년 상어가 되었다. 4×4크기의 공간이 있고, 크기가 1×1인 정사각형 칸으로 나누어져 있다. 공간의 각 칸은 (x, y)와 같이 표현하며, x는 행의 번호, y는 열의 번호이다. 한 칸에는 물고기가 한 마리 존재한다. 각 물고기는 번호와 방향을 가지고 있다. 번호는 1보다 크거나 같고, 16보다 작거나 같은 자연수이며, 두 물고기가 같은 번호를 갖는 경우는 없다. 방향은 8가지 방향(상하좌우, 대각선) 중 하나이다. 오늘은 청소년 상어가 이 공간에 들어가 물고기를 먹으려고 한다. 청소년 상어는 (0, 0)에 있는 물고기를 먹고, (0, 0)에 들어가게 된다. 상어의 방향은 (0, 0)에 있던 물고기의 방향과 같다. 이후 물고기가 이동한다. 물고기는 번호가 ..
[Algorithm] 백준_아기 상어_16236번 (JAVA) 🦈
·
Algorithm
📝문제https://www.acmicpc.net/problem/16236티어: 골드 3문제N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다.아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다.아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다.아기 상어가 어디로 이동할지 결정하는 방법..
[CS] 컴퓨터 네트워크의 기본 개념
·
CS/네트워크
1️⃣인터넷과 프로토콜, 데이터 전송 방식(회선/패킷 교환)🚀인터넷인터넷은 전 세계적으로 연결된 네트워크의 집합으로, LAN 사이를 상호 연결하여 전 세계 규모로 확장한 네트워크이다.인터넷은 종종 '네트워크의 네트워크' 또는 '세계에서 가장 큰 WAN' 으로도 불린다.  🚀프로토콜네트워크에서 데이터를 원활하게 주고받기 위해 통신에 참여하는 주체들(송신자, 수신자)가 따라야 하는 규칙을 의미한다.즉, 데이터를 어떻게 포맷하고, 송수신하며, 오류를 감지하고 수정할지 등에 대한 약속이다. 🚀데이터 전송 방식네트워크에서 데이터를 전달하는 방식에는 회선 교환과 패킷 교환이 있다. 회선교환통신이 시작되면 송신자와 수신자 간의 전용 회선을 설정하여 데이터를 전송하는 방식ex) 전화 통신 (전화 연결이 유지되는 ..
[Algorithm] 백준_특정한 최단 경로_1504번 (JAVA) 투포인터 알고리즘
·
Algorithm
📝문제https://www.acmicpc.net/problem/2559티어: 실버3💡풀이문제 유형투포인터 알고리즘 걸린 시간20분 시간 복잡도  풀이 방법 도출연속적이고, 범위가 계속 오른쪽으로 이동하는 문제여서 투포인터를 바로 떠올릴 수 있었다.left = 0, right = K 로두고 right가 N이하일때 까지 반복하는 반복문을 작성한다.이때 결과값인 max는 int범위의 최소값으로 설정해야 한다. 입력 받는 정수의 범위가 -100 ~ 100이기 때문에!이후 left부터 right까지의 arr의 합을 구해 max와 비교해주면 답을 도출할 수 있다.import java.util.*;import java.io.*;class Main{ public static void main(String[] ..
[Algorithm] 백준_안전 영역_2648번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/2468티어 : 실버1 💡풀이 문제 유형dfs 걸린 시간37분 시간 복잡도O(N^2)최악의 경우 -> O(100*100*100) => 1000000번의 연산 => 1초 안에 ok 풀이 방법 도출구역 나누기 => dfs로 풀이 가능h를 증가시키면서 가장 큰 값이 나오는 경우를 저장해 두는 방법을 사용했다.h=0으로 두고 while 반복문을 돌린다.이때 구역의 수를 count로 두고 count가 0이 되면 반복문을 빠져나온다.  => 모든 위치를 다 방문함현재 위치의 높이가 h보다 높거나 같고, 방문하지 않은 위치라면 dfs를 돌려 현재 위치부터 사면을 검사해 방문을 체크해 준다.정답 max와 count 중 더 큰 값을 max에 저장하고 답을..
[Algorithm] 프로그래머스_바탕화면 정리 (JAVA)
·
Algorithm
📝문제https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화..