Til 8

N초 동안 가능한 스킬 조합 수 구하기

🧠 TIL - DP로 N초 동안 가능한 스킬 조합 수 구하기 오늘은 스킬의 사용 시간 제약이 있는 조합 문제를 DP로 해결해봤다. 핵심은 dp[i]가 “i초를 채우는 방법의 수”를 의미한다는 점이다. 📌 문제 요약 스킬 A: 1초 스킬 B: m초 총 N초를 정확히 채울 수 있는 모든 조합의 수를 구하라 결과는 1,000,000,007로 나눈 나머지 출력 📄 핵심 점화식 dp[i] = dp[i - 1] + dp[i - m] (단, i ≥ m) 🔍 코드 설명 nanoom = 1_000_000_007dp = [0] * (n + 1)dp[0] = 1 # 0초는 아무 것도 안 쓰는 1가지 방법for i in range(1, n + 1): dp..

Python/algorithm 2025.04.20

JadenCase 문자열 처리[프로그래머스]

🧠 TIL - JadenCase 문자열 처리 오늘은 문자열을 JadenCase로 바꾸는 문제를 풀었다. 핵심은 단어별로 첫 글자는 대문자, 나머지는 소문자로 만드는 거고, 숫자로 시작하는 경우는 소문자만 처리하면 된다. 📌 예시 input : "3people unFollowed me"output: "3people Unfollowed Me" 💡 핵심 로직 def solution(s): answer = '' for i in s.split(" "): if i == "": answer += " " elif i[0].isalpha(): answer += i[0].upper() + i[1:].lower..

Python/algorithm 2025.04.16

과자 나눠주기 [백준]

🧠 TIL - 이진탐색 과자 나눠주기 오늘은 다시 한 번 이진탐색 개념을 정리했다. 직접 구현할 땐 while문 범위나 mid 조정에서 종종 헷갈려서, 이번에 완전히 패턴을 잡아놔야겠다고 생각했다. 📌 개념 이진 탐색은 정렬된 탐색 범위 내에서 특정 조건을 만족하는 값을 찾는 방식이다. 중간값(mid)을 기준으로 탐색 범위를 반씩 줄여가며, 조건을 만족하는지 확인하고 범위를 조정한다. 🧩 기본 구조 start = 최소값end = 최대값answer = 0while start ❓ 왜 이렇게 하는가 start : 탐색이 끝나기 전까지 조건을 만족: 일단 저장하고 더 큰 쪽 탐색 조건 불만족: 무조건 줄여야 하니까 end 감소 ..

Python/algorithm 2025.04.14

백준 병든 나이트

링크: https://www.acmicpc.net/problem/1783📌 문제 요약나이트가 체스판 위에서 이동할 수 있는데, 병들어서 **2가지 방향으로만 이동 가능**함.단, 방문 횟수에 따라 **움직일 수 있는 방향 제약 조건**이 있음.나이트는 총 4가지 방식으로 이동 가능 (실제론 2가지)세로로는 위로만 이동함총 이동 횟수에 따라 4가지 이동 방식 중 적어도 3가지 이상을 사용해야 제약이 풀림📌 분기높이 H가 1 → 움직일 수 없음 (정답: 1)H가 2 → 위로 2칸 못 가니까 최대 4번까지만 가능 (이동 방식 제한)H ≥ 3 and W 그 외에는 자유롭게 이동 가능 → W - 2칸까지 가능💻 코드n,m = map(int, input().split())def solution(n, m): ..

Python/algorithm 2025.04.13

측정할 수 없는 최소 무게

오늘은 그리디(Greedy) 알고리즘의 핵심 개념을 활용하는 문제인 백준 2437번: 저울을 풀어보았다. 🧩 문제 요약 여러 개의 저울추가 주어진다. 이 추들을 이용해 측정할 수 없는 가장 작은 양의 정수 무게를 구하는 문제다. 예: [3, 1, 6, 2, 7, 30, 1] → 정답: 21 🔍 핵심 아이디어 추들을 오름차순 정렬한 후, 지금까지 만들 수 있는 최대 누적합을 `target`이라 한다. 매번 다음 추의 무게 `w`를 확인하며, w > target일 경우, 그 순간 target이 측정할 수 없는 최소 무게가 된다. 🤔 왜 그렇게 되는가? 예를 들어, 현재까지 1 ~ 20까지는 만들 수 있었다고 하자. 그런..

Python/algorithm 2025.04.10

한국이 그리울 땐 서버에 접속하지

이번 문제는 간단한 정규식 패턴 매칭 문제였습니다. 한국이 그리울 땐 서버에 접속하지[9996] 📋 문제 설명 첫째 줄에 파일의 개수 N이 주어진다. (1 ≤ N ≤ 100) 둘째 줄에는 패턴이 주어진다. 패턴은 알파벳 소문자와 별표(*) 한 개로 이루어져 있으며, 별표는 문자열의 시작과 끝에 있지 않다. 다음 N개의 줄에는 각 파일 이름이 주어지고, 패턴과 일치하는지 판별해야 한다. 별표(*)는 임의의 문자열(길이 0 이상)을 의미하며, 정규식의 .*와 동일하다. 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고: "DA"는 YES, "NE"는 NO를 의미한다. 🧪 입..

Python/algorithm 2025.04.09

슬라이딩 윈도우

📘 TIL - 백준 2559번: 수열 + 슬라이딩 윈도우 개념 정리🔍 문제 개요매일 측정한 온도를 정수 수열로 입력받고,연속된 K일 간의 온도 합 중 최대값을 구하는 문제.✅ 사용한 알고리즘: 슬라이딩 윈도우 (Sliding Window)📌 개념 정리슬라이딩 윈도우는 고정된 길이의 연속된 범위를 이동시키며 조건을 만족하는 구간을 탐색하는 기법매번 구간을 슬라이스하거나 합을 새로 구하면 비효율적이기 때문에,앞 원소는 빼고, 뒤 원소는 더해서 빠르게 구간합을 갱신하는 방식✨ 슬라이딩 윈도우 구현 예시 (K=3)temps = [3, -2, -4, -9, 0, 3, 7, 13, 8, -3]k = 3# 첫 윈도우 합 계산res = sum(temps[:k])max_sum = res# 윈도우를 한 칸씩 오른쪽으..

Python/algorithm 2025.04.04

HTTP Cookie

Cookie 주 사용처 사용자 로그인 세션 관리 광고 정보 트래킹 쿠키정보는 항상 서버에 전송 네트워크 트래픽 추가 유발 최소한의 정보만 사용(세션 id, 인증 토큰) 서버에전송하지않고, 웹 브라우저 내부에 저장하려면 웹 스토리지(localStorage, sessionStorage) 보안에 민감한 데이터는 절대 저장 금지 세션 쿠키 : 만료일자 생략시 브라우저 종료시까지만 유지 영속 쿠키 : 만료일자 입력시 해당 일자까지 유지 도메인 명시 : 명시한 문서 기준 도메인 + 서브 도메인 포함 적용 domain = example.org example.org = 접근 dev.example.org = 접근 생략 : 현제 문서 기준 도메인만 적용 domain = example.org example.org = 접근 ..

CS 2022.05.15