[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클럽 코테 스터디 13일차 TIL + JadenCase 문자열 만들기(프로그래머스 12951번)
·
항해99 코테
✅ 오늘의 학습 키워드문자열대소문자 변환 함수 - toupper, tolowerFlag 변수 활용✅ 공부한 내용✔️ 문제 요약(프로그래머스 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12951)JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열이다.(단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 된다.)제한 조건:문자열 길이 1~200알파벳, 숫자, 공백문자로 구성숫자는 단어의 첫 문자로만 가능숫자로만 이루어진 단어는 없음공백문자가 연속해서 나올 수 있음입출력 예:"3people unFollowed me" → "3people Unfollowed Me""for the las..
[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..