[C++] 99클럽 코테 스터디 19일차 TIL + 김밥천국의 계단 (백준 28069번)
·
항해99 코테
✅ 오늘의 학습 키워드BFS(너비 우선 탐색)✅ 공부한 내용✔️ 문제 요약(백준 문제 링크: https://www.acmicpc.net/problem/28069)민희는 0번째 계단에서 시작하여 N번째 계단에 있는 김밥 가게에 도달하려 한다. 매번 다음의 두 가지 행동 중 하나를 선택할 수 있다.계단 한 칸을 올라간다.현재 i번 계단에서 지팡이를 두드려 i+⌊i/2⌋번 계단으로 순간이동한다.민희는 총 K번 행동할 수 있으며, K번 이하의 행동으로 N번째 계단에 도달할 수 있는지 확인해야 한다. (정확히 K번째 행동에서 N번째 계단에 도달한다고 되있는데 이 정확히를 조심해야 한다. K번째 가아닌 K번 이하의 행동이다.)✔️ 풀이 로직이 문제는 BFS(너비 우선 탐색)를 활용하여 최소 행동 횟수를 구하는 문제..
[C++] 99클럽 코테 스터디 15일차 TIL + 리그 오브 레전설 (Small) (백준 17271번)
·
항해99 코테
✅ 오늘의 학습 키워드다이나믹 프로그래밍(DP)기저 상태(Base case)모듈러 연산(mod)✅ 공부한 내용✔️ 문제 요약(백준 문제 링크: https://www.acmicpc.net/problem/17271)이 문제는 게임에서 두 가지 스킬(A와 B)을 사용하여 N초 동안 싸움을 할 때, 가능한 모든 스킬 조합의 수를 구하는 문제입니다.A 스킬: 시전 시간 1초B 스킬: 시전 시간 M초규칙: 스킬 시전 중에는 다른 스킬을 사용할 수 없고, 스킬을 사용하지 않는 시간이 없어야 함결과는 아주 큰 수가 될 수 있으니 1,000,000,007로 나눈 나머지를 출력해야 한다.✔️ 풀이 로직이 문제는 전형적인 다이나믹 프로그래밍(DP) 문제다. (물론 기저 상태 설정 안해서 못푼...바보..)각 시간에서 가능한..
[C++] 99클럽 코테 스터디 14일차 TIL + 진우의 달 여행 (Small) (백준 17484번)
·
항해99 코테
✅ 오늘의 학습 키워드다이나믹 프로그래밍(DP)3차원 배열최소 비용 경로 탐색✅ 공부한 내용✔️ 문제 요약(백준 문제 링크: https://www.acmicpc.net/problem/17484)N x M 행렬에서 지구(첫 행)에서 달(마지막 행)까지 최소 연료로 이동하는 문제우주선은 세 가지 방향으로만 이동 가능:왼쪽 대각선 아래 (↙)바로 아래 (↓)오른쪽 대각선 아래 (↘)제약 조건: 같은 방향으로 두 번 연속 이동할 수 없음지구의 어느 위치에서든 출발 가능, 달의 어느 위치든 착륙 가능✔️ 풀이 로직해당 문제는 다이나믹 프로그래밍(DP)을 통해 해결할 수 있다.핵심 아이디어는 현재 위치와 이전 이동 방향을 함께 상태로 저장하는 점화식을 만드는 것이다.1. 상태 정의dp[i][j][k] = i행 j열..
[C++] 99클럽 코테 스터디 12일차 TIL + 포도주 시식(백준 2156번)
·
항해99 코테
✅ 오늘의 학습 키워드다이나믹 프로그래밍 or 동적 계획법 (Dynamic Programming = DP)✅ 공부한 내용✔️ 문제 요약(백준 문제 링크: https://www.acmicpc.net/problem/2156)포도주 시식회에서 일렬로 놓인 포도주를 마시려고 한다. 다음과 같이 두 가지 조건이 있다.선택한 포도주는 모두 마셔야 한다.연속으로 3잔을 모두 마실 수 없다.각 포도주 잔에 들어있는 양이 주어질 때, 최대로 마실 수 있는 포도주의 양을 구하는 문제다.✔️ 풀이 로직이 문제는 동적 프로그래밍 접근법으로 해결해야한다.각 위치에서 가능한 경우의 수를 고려하며 최대값을 누적해 나가는 방식이다.DP 배열을 정의: dp[i]는 i번째 잔까지 고려했을 때 마실 수 있는 최대 양각 위치 i에서 가능한..
[C++] 99클럽 코테 스터디 11일차 TIL + 과자 나눠주기(백준 16401번)
·
항해99 코테
✅ 오늘의 학습 키워드이분 탐색 (Binary Search) or 이진 탐색결정 문제 (Decision Problem)단조성 (Monotonicity) - 증가 / 감소 ✅ 공부한 내용✔️ 문제 요약(백준 문제 링크: https://www.acmicpc.net/problem/16401)명절에 조카들에게 막대 과자를 모두 나눠주는 문제다. 조건은 다음과 같다.M명의 조카들에게 동일한 길이의 과자를 나눠줘야 한다.과자는 여러 조각으로 나눌 수 있지만, 합칠 수는 없다. (과자의 길이는 양의 정수)조카 1명에게 줄 수 있는 가장 긴 과자의 길이를 찾아야 한다.✔️ 풀이 로직이 문제는 길이가 L인 과자를 M명의 조카에게 모두 나눠줄 수 있을까? 라는 결정 문제(Decision Problem)로 생각하고 길이 L..
[C++] 99클럽 코테 스터디 10일차 TIL + 병든 나이트(백준 1783번)
·
항해99 코테
✅ 오늘의 학습 키워드그리디 알고리즘조건문✅ 공부한 내용✔️ 문제 요약(백준 문제 링크: https://www.acmicpc.net/problem/1783) 병든 나이트는 N×M 크기의 체스판에서 왼쪽 아래에서 시작하여 특정 방식으로만 이동할 수 있다:2칸 위로, 1칸 오른쪽1칸 위로, 2칸 오른쪽1칸 아래로, 2칸 오른쪽2칸 아래로, 1칸 오른쪽중요한 제약사항은:이동 횟수가 4회 이상이면 네 가지 이동 방식을 모두 한 번씩 사용해야 함이동 횟수가 4회 미만이면 제약 없음목표는 주어진 체스판 크기에서 방문할 수 있는 최대 칸 수를 찾는 것이다.✔️ 풀이 로직문제의 핵심은 체스판 크기에 따라 케이스를 나누어 생각하는 것이다: 1. N = 1인 경우:세로 길이가 1이므로 위나 아래로 이동 불가능하다.나이..