분류 전체보기
-
백준 2839번 - 설탕 배달 파이썬개발/알고리즘 2025. 3. 28. 13:39
📌 백준 2839번 - 설탕 배달 (DP)✨ 문제 요약당신은 설탕을 정확히 N킬로그램 배달해야 합니다.설탕 봉지는 3kg 또는 5kg 두 종류만 있습니다.가장 적은 봉지 수로 N킬로그램을 배달하려면 몇 개가 필요할까요?만약 정확하게 N킬로그램을 만들 수 없다면 -1을 출력합니다.🧠 문제 해석3kg, 5kg 봉지만 사용 가능조합해서 정확히 N을 만들어야 함최소 봉지 수를 구하는 문제 → 최소값 DP🔧 점화식 설계dp[i] = i킬로그램을 만들기 위한 최소 봉지 수기본 점화식:dp[i] = min(dp[i - 3] + 1, dp[i - 5] + 1)i-3에 3kg 하나 추가i-5에 5kg 하나 추가둘 중 최소값 선택초기값:dp[0] = 0 (0kg은 봉지 0개)나머지는 float('inf')로 설정 (..
-
백준 11722번 - 가장 긴 감소하는 부분 수열 (LDS) 파이썬개발/알고리즘 2025. 3. 27. 18:11
📌 백준 11722번 - 가장 긴 감소하는 부분 수열 (LDS)✨ 문제 요약수열이 하나 주어졌을 때,그 수열에서 감소하는 부분 수열 중 가장 긴 길이를 구하는 문제입니다.🧠 문제 해석LIS(가장 긴 증가하는 부분 수열)와 반대 개념즉, 수열의 요소들이 점점 작아지는 방향으로 이어져야 함연속되지 않아도 되고, 순서만 지켜지면 됨🔧 점화식 설계dp[i] = i번째 원소를 마지막으로 하는 가장 긴 감소하는 부분 수열의 길이for i in range(N): for j in range(i): if arr[i] 🧱 DP 테이블 예시입력: arr = [10, 30, 10, 20, 10]i arr[i] dp[i] 의미 (i까지 고려했을 때 감소하는 수열 길이)0101 (처음 원소)1301 (증..
-
백준 2579번 - 계단 오르기 파이썬개발/알고리즘 2025. 3. 27. 16:25
📌 백준 2579번 - 계단 오르기 (DP)✨ 문제 요약각 계단에는 점수가 주어지고, 계단을 밟으면 그 점수를 얻게 됩니다.다음 조건을 지키면서 마지막 계단까지 올라가며 얻을 수 있는 최대 점수를 구하는 문제입니다.조건한 번에 1칸 또는 2칸씩 오를 수 있다연속된 3개의 계단을 밟을 수 없다마지막 계단은 반드시 밟아야 한다🧠 문제 해석이 문제는 최댓값을 구하는 DP 문제입니다.특히, 연속 세 계단 금지라는 제약 때문에 두 가지 경로만 고려할 수 있습니다:✅ i번째 계단을 밟는 두 가지 방법i-2 → i→ 두 칸 점프 → dp[i-2] + arr[i]i-3 → i-1 → i→ 한 칸, 한 칸 → dp[i-3] + arr[i-1] + arr[i]그래서 점화식은 다음과 같습니다:dp[i] = max( ..
-
백준 9095번 - 1, 2, 3 더하기 파이썬개발/알고리즘 2025. 3. 27. 14:30
📌 백준 9095번 - 1, 2, 3 더하기 (DP)✨ 문제 요약정수 n이 주어졌을 때, 정수 1, 2, 3을 사용해서 합이 n이 되는 경우의 수를 구하는 문제입니다. 순서를 고려한다는 것이 핵심입니다.🧠 문제 해석이 문제는 순서를 고려한 경우의 수 DP 문제입니다. 각 숫자는 다음의 경우들로 쌓일 수 있습니다:마지막에 +1 을 붙이면 → dp[i-1]마지막에 +2 을 붙이면 → dp[i-2]마지막에 +3 을 붙이면 → dp[i-3]🔧 점화식dp[i] = dp[i-1] + dp[i-2] + dp[i-3]🧱 DP 테이블 예시idp[i]의미111 → 1가지221+1, 2 → 2가지341+1+1, 1+2, 2+1, 347총 7가지✅ 코드t = int(input())for _ in range(t): ..
-
백준 1463번 - 1로 만들기 파이썬개발/알고리즘 2025. 3. 27. 14:19
📌 백준 1463번 - 1로 만들기 (DP)✨ 문제 요약정수 N이 주어졌을 때, 아래 연산 중 하나를 선택해서정수 1을 만들기 위한 최소 연산 횟수를 구하는 문제입니다.사용할 수 있는 연산X → X / 3 (단, 3으로 나누어떨어질 때)X → X / 2 (단, 2로 나누어떨어질 때)X → X - 1🧠 초기 접근 시도 (그리디 → 실패)처음에는 아래처럼 단순하게 나눌 수 있을 때마다 나누는 식으로 접근했지만,while N > 1: if N % 3 == 0: N //= 3 elif N % 2 == 0: N //= 2 else: N -= 1이 방식은 항상 최적의 해를 보장하지 않습니다.예를 들어 N = 10일 때,그리디 방식은 10 → 5 → 4 → 2..
-
코드잇 백엔드 스프린트 - 7주차 위클리-페이퍼 WAS개발/활동 2025. 3. 24. 09:05
✏️ 웹 서버 vs WAS 그리고 Spring Boot의 내장 톰캣은?1. 웹 서버(Web Server)란?정적인 리소스(HTML, CSS, JS, 이미지 등)를 클라이언트에게 제공클라이언트의 요청(Request)을 받아서, 파일 그대로 응답(Response)대표적인 웹 서버: Apache HTTP Server, Nginx2. WAS(Web Application Server)란?동적인 로직을 처리하는 서버Java Servlet, JSP 등 웹 애플리케이션을 실행시켜 결과를 생성데이터베이스 연동, 세션 관리, 비즈니스 로직 수행대표적인 WAS: Tomcat, Jetty, WildFly3. 웹 서버와 WAS의 차이항목웹 서버WAS처리 대상정적 리소스동적 로직사용 목적HTML, CSS 등 파일 전달비즈니스 로..
-
코드잇 백엔드 스프린트 - 6주차 위클리-페이퍼 : 프레임워크와 라이브러리의 차이점개발/활동 2025. 3. 16. 23:49
프레임워크와 라이브러리의 차이점: 제어 흐름(Control Flow)과 사용 방식 중심으로 설명소프트웨어 개발에서 **프레임워크(Framework)**와 **라이브러리(Library)**는 코드의 재사용성을 높이고 개발을 더 효율적으로 만드는 중요한 개념입니다.하지만 **"제어 흐름의 주체(누가 흐름을 결정하는가?)"**와 **"사용 방식"**에 차이가 있습니다.1️⃣ 제어 흐름의 차이 (누가 주도하는가?)구분 프레임워크 (Framework) 라이브러리 (Library)제어 흐름프레임워크가 전체 흐름을 제어하며, 개발자가 필요한 부분만 작성개발자가 직접 흐름을 제어하고, 필요한 라이브러리를 호출하여 사용제어의 역전 (IoC, Inversion of Control)O (프레임워크가 개발자의 코드를 실행)X..
-
코드잇 백엔드 스프린트 - 6주차 위클리-페이퍼 : Spring Framework의 탄생 배경과 해결하고자 했던 문제점개발/활동 2025. 3. 16. 23:45
Spring Framework의 탄생 배경과 해결하고자 했던 문제점1. Spring Framework의 탄생 배경Spring Framework는 2002년 로드 존슨(Rod Johnson)에 의해 처음 개발되었으며, 2003년 그의 저서 Expert One-on-One J2EE Design and Development에서 소개되었습니다. 당시 Java EE(Java Enterprise Edition)는 엔터프라이즈 애플리케이션 개발의 표준이었지만, 많은 개발자들이 불편함을 느끼고 있었습니다. Java EE는 강력한 기능을 제공했지만, EJB(Enterprise JavaBeans)와 같은 기술이 지나치게 복잡하고 사용하기 어려웠습니다. 이에 대한 대안으로 Spring Framework가 등장하게 되었습니다..