전체 글 97

[Algorithm/BOJ] 1697 : 숨바꼭질.py

문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.예제 입력 / 출력5 17 4힌트수빈이가 5 → 10 → 9 → 18 → 17 순..

Algorithm 2025.09.28

[Algorithm/프로그래머스] Lv.2 타겟넘버.py

문제n개의 음이 아닌 정수들이 있습니다.이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다.예를 들어, [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 가지 방법이 있습니다.-1 + 1 + 1 + 1 + 1 = 3+1 - 1 + 1 + 1 + 1 = 3+1 + 1 - 1 + 1 + 1 = 3+1 + 1 + 1 - 1 + 1 = 3+1 + 1 + 1 + 1 - 1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때,숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성하세요. 제한사항숫자의 개수: 2개 이상 20개 이하각 숫자: 1 이상 50 이하 자연수타겟 넘버..

Algorithm 2025.09.26

[네트워크] 캐시와 조건부 요청 HTTP 헤더

캐시 기본 동작캐시가 없을 때[요청1]GET /star.jpg[응답1]HTTP/1.1 200 OKContent-Type: image/jpegContent-Length: 34012aklcmnaoi123rtnjcv79324jnbpqiejm23589cmnasoic9anlkjfoiqmmmsdjhfguyjhow93jmlkcv3HTTP 헤더 0.1MHTTP 바디 1.0M=> 1.1M 전송[요청2]GET /star.jpg[응답2]HTTP/1.1 200 OKContent-Type: image/jpegContent-Length: 34012aklcmnaoi123rtnjcv79324jnbpqiejm23589cmnasoic9anlkjfoiqmmmsdjhfguyjhow93jmlkcv3HTTP 헤더 0.1MHTTP 바디 1.0M..

CS/네트워크 2025.09.06

[네트워크] HTTP 일반 헤더 (+ 인증, 쿠키)

HTTP 헤더 기본 구조header-field = field-name ":" OWS field-value OWSfield-name: 헤더 이름 (대소문자 구분이 없다)ex. Host, Content-Typefield-value: 헤더 값 (문자열, 숫자, 기타 정보)OWS (Optional White Space): 공백 허용 (콜론 뒤에 스페이스 있어도 되고 없어도 된다.)[요청]GET /search?q=hello&hl=ko HTTP/1.1Host: www.google.com 👈 HTTP 헤더[응답]HTTP/1.1 200 OKContent-Type: text/html;charset=UTF-8 👈 HTTP 헤더Content-Length: 3423 👈 HTTP 헤더 ... HTTP 헤더 용도HTTP ..

CS/네트워크 2025.09.06

[네트워크] HTTP 상태 코드

HTTP 상태 코드클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다.1xx (Informational): 요청이 수신되어 처리 중2xx (Successful): 요청 정상 처리3xx (Redirection): 요청을 완료하려면 추가 행동이 필요4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함💡 모르는 상태 코드가 나온 경우 (클라이언트가 인식할 수 없는 상태코드를 서버가 반환한 경우) 클라이언트는 상위 상태코드로 해석해서 처리하므로 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 된다. (ex. 299 → 2xx → Successful) ..

CS/네트워크 2025.09.05

[Algorithm/BOJ] 1463 : 1로 만들기.py

문제정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 풀이 #1각 숫자 인덱스에 연산 횟수를 저장하여 조회할 수 있도록 하였다. 그러나 이 풀이는 Bottom-up 방식으로, for문을 통해 1부터 n까지 모든 값을 계산하기 때문에 실제로 n의 최소 연산 횟수를 구하는 데 불필요한 값들까지 모두 연산하게 된다. 그리고 파이썬에서 list..

Algorithm 2025.09.01

[Algorithm/BOJ] 16236 : 아기 상어.py

문제NxN 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1x1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다.아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다.아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다.아기 상어가 어디로 이동할지 결정하는 방법은 아래와 같다.더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마 상어에게..

Algorithm 2025.08.28

[네트워크] HTTP 설계

클라이언트에서 서버로 데이터를 전송하는 방식은 크게 쿼리 파라미터, 메시지 바디를 통한 데이터 전송 방식으로 나뉜다. 먼저, 쿼리 파라미터를 통한 데이터 전송은 주로 GET 방식을 사용하고 정렬 또는 필터(ex. 검색어)에 많이 사용된다. 메시지 바디를 통한 데이터 전송 방식은 POST, PUT, PATCH 방식을 사용하며, 회원가입, 상품 주문, 리소스 등록/변경 등에 사용된다.클라이언트에서 서버로 데이터를 전송하는 상황은 네 가지로 나눌 수 있다.1. 정적 데이터 조회 GET을 통하여 이미지, 정적 텍스트 문서를 조회할 때 사용되며, 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능하다.2. 동적 데이터 조회 GET 방식으로 쿼리 파라미터를 통해 데이터를 전달하고, 주로 검색하거나 게시..

CS/네트워크 2025.08.21

[JAVA] 기본형과 참조형

01. 변수의 데이터 타입기본형 (Primitive Type)변수에 사용할 값을 직접 넣을 수 있는 데이터 타입니다.ex. int, long, double, boolean기본형 변수에는 직접 사용할 수 있는 값이 들어있다.10, 20은 기본형으로, 값을 변수에 담고 해당 값을 바로 사용할 수 있다.cf. 참조형은 실제 사용하는 값을 변수에 담는 것이 아니다.값을 그대로 계산에 사용할 수 있다.참조형 (Reference Type)데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입이다.객체 또는 배열에 사용된다.객체: . (dot) 을 통해서 메모리 상에 생성된 객체를 찾아가야 사용할 수 있다.배열: [ ] 를 통해서 메모리 상에 생성된 배열을 찾아가야 사용할 수 있다.ex. Student stude..

Java 2025.08.19