"꾸준하고 완벽한 한 걸음"

분류 전체보기 846

[Code Tree] 사각형 채우기 [Python]

문제https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-rectangle-fill/description 사각형 채우기 설명 | 코드트리사각형 채우기를 풀며 문제 구성과 난이도를 파악해 적절한 알고리즘을 선정해보세요. 효율적인 코드 작성을 목표로 합니다.www.codetree.ai 풀이문제 요약2 * N 크기의 사각형에 1 * 2, 2 * 1 크기의 사각형으로 채우는 방법의 수를 구하자.아이디어점화식은 다음과 같다.dp[i] : 2 * i 크기 사각형을 채우는 방법의 수2 * i 크기의 사각형을 채우기 위한 방법은 2 * (i - 1) 사각형에 2 * 1 사각형 하나를 붙이는 경우와, 2 * (i - 2) 사각형에 1 * 2 사각형 두개를..

PS/Code Tree 00:40:55

[Code Tree] 계단 오르기 [Python]

문제https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-climbing-stairs/description 계단 오르기 설명 | 코드트리계단 오르기를 풀며 문제 구성과 난이도를 파악해 적절한 알고리즘을 선정해보세요. 효율적인 코드 작성을 목표로 합니다.www.codetree.ai 풀이문제 요약주어진 규칙대로만 계단을 오를 수 있을 때, N층 높이의 계단을 오르는 모든 경우의 수를 구하자.아이디어점화식은 다음과 같다.dp[i] : i 번째 계단을 오르는 모든 경우의 수계단은 2칸 또는 3칸씩만 오를 수 있으므로, 현재 계단까지 오르기 위해서는 2/3칸 낮은 계단에서 올라오는 경우의 수만 존재하기 때문이다.dp[i] = 1, { N = 2 o..

PS/Code Tree 2025.06.19

[Code Tree] 피보나치 수 [Python]

문제https://www.codetree.ai/ko/trails/complete/curated-cards/intro-fibonacci-number/description 피보나치 수 설명 | 코드트리피보나치 수를 풀며 문제 구성과 난이도를 파악해 적절한 알고리즘을 선정해보세요. 효율적인 코드 작성을 목표로 합니다.www.codetree.ai 풀이문제 요약N번째 피보나치 수를 구하기 위해 DP로 점화식을 구현하자.피보나치 수열은 다음을 따른다.dp[i] = 1, N ≤ 2dp[i] = dp[i - 1] + dp[i - 2], N > 2N = int(input())# Please write your code here.def fibo(N): if N == 1 or N == 2: return 1..

PS/Code Tree 2025.06.18

[백준 30518] 짜고 치는 가위바위보 (Small) [Java]

문제30518번: 짜고 치는 가위바위보 (Small) 30518번: 짜고 치는 가위바위보 (Small) boj.ma 풀이문제 요약이전에 lighter가 이겼고, 현재 비기는 경우를 제외한 모든 부분 수열의 수를 구하는 문제다.아이디어부분 수열의 수를 구해야 하므로 C(N, 1) ~ C(N, N)의 모든 부분 수열 중 조건을 만족하는 경우를 찾아야 한다.조건을 만족하는 경우인지 판별해줄 judge와 private static int judge(char lighter, char smallant) { if (lighter == smallant) return 0; if ((lighter == 'R' && smallant == 'S') || (lighter..

[백준 20937] 떡국 [Java]

문제20937번: 떡국 20937번: 떡국 boj.ma 풀이문제 요약주어진 떡국 그릇 크기로 최소한의 떡국 그릇 탑을 만들자아이디어자기 자신보다 작은 그릇만 쌓을 수 있고, 만약 큰 그릇의 수가 작은 그릇의 수보다 부족하다면 결국 떡국 그릇 탑은 더 생긴다.즉 동일한 크기의 떡국 그릇 중 최대 갯수를 가지는 그릇의 수 만큼 떡국 그릇 탑을 만들어야 한다.정렬 후 동일한 크기의 그릇의 최대 갯수를 세자 // Solve Arrays.sort(A); int prev = A[A.length - 1]; int res = 1; int cnt = 1; for (int i = A.length - 2; i >= 0; i--) { ..

[회고록] 2025 용인시 커리어로드맵 경진대회를 마치며

1. 대회 소개본 대회는 용인시 관내 9개 대학이 공동 주최하는 진로 설계 발표형 대회입니다.참가자는 자신의 강점과 커리어 목표를 정리해, 구체적인 실행 계획과 비전을 발표하는 형식으로 진행됩니다.대회는 단순히 진로 방향을 설명하는 것을 넘어 "어떤 문제를 해결하고 싶은 사람인가", 그리고 "그 목표를 어떻게 실현해 나갈 것인가"를 중심에 둡니다. 평가 방식은 두 단계로 구성됩니다.먼저, 전문가에 의한 사전 심사(60%)를 통해 로드맵의 논리성과 실행력, 진정성이 평가되며이후 현장에서 참가자들끼리 서로 발표를 평가하는 상호 평가(40%)가 더해집니다.이후 개인 점수를 팀 단위로 묶어 평균을 내는 방식으로 최종 순위에 반영됩니다. 팀은 랜덤으로 구성됩니다.2. 개발자가 되고자 한 이유내가 살아가는 병든 사..

Activity 2025.06.12

[백준 16969] 차량 번호판 2 [Java]

문제16969번: 차량 번호판 2 16969번: 차량 번호판 2 boj.ma 풀이현재와 이전 번호판 형식을 비교해 다른 경우라면 모든 경우를 다 사용할 수 있고, 같다면 동일한 경우는 사용할 수 없다.나누는 수가 1e9이지만, 계산 과정에서 int 범위를 초과한다. long으로 결과를 담자.char prev = '\\0'; long cnt = 1; for (char c : board) { if (c != prev) { cnt = (cnt * (c == 'd' ? 10 : 26)) % MOD; } else { cnt = (cnt * (c == 'd' ? 9 : 25)) % MOD; ..

[백준 11049] 행렬 곱셈 순서 [Java]

문제11049번: 행렬 곱셈 순서 11049번: 행렬 곱셈 순서 boj.ma 풀이문제 요약행렬 N개의 곱셈 순서를 적절히 정해, 곱셈 연산 수의 최소값을 구해야 한다.아이디어행렬 곱셈은 결합 순서에 따라 계산 비용이 달라진다.따라서, 각 구간 [L, R]을 적절히 나누는 위치 t를 찾아 최소 비용을 계산해야 한다.점화식은 다음과 같다.dp[L][R]: L ~ R 구간의 최소 곱셈 비용dp[L][R] = dp[L][t] + dp[t + 1][R] + (matrix[L][0] * matrix[t][1] * matrix[R][1])행렬이 1개 일 때행렬이 1개 일 때, 즉 L == R일 때는 연산을 하지 않으므로, dp[L][L] = 0이 된다. // Solve int[][] dp =..

[백준 04626] 가글 [Java]

문제4626번: 가글 4626번: 가글 boj.ma 풀이주어진 분자와 분모를 7진법으로 나타낼 때, B~E번째 자릿수를 출력하는 문제다.B, E가 0인 경우는 소수점 바로 오른쪽 수로, 정수 부분은 제거하자. N %= D;장제법에 따라, 분자에 10대신 7을 곱하고, 분모로 나누었을때의 몫을 자릿수로 취해야 한다.B~E번째 자릿수만 필요하므로, 0 ~ B - 1번째는 건너뛰자. for (int i = 0; i 풀이시간10분소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/04626.java problem-solving/baekjoon-online-judge/eas..

[백준 08896] 가위 바위 보 [Java]

풀이8896번: 가위 바위 보 풀이N개의 로봇들이 가위바위보를 했을 때, 승리한 로봇의 번호를 출력하는 문제다.난이도에 비해 구현 사항이 많다. 순서대로 구현해보자.게임 시작 전 어떤 로봇들이 살아있는지 체크할 배열 isAlive를 선언 및 초기화 했다. // Solve boolean[] isAlive = new boolean[N]; Arrays.fill(isAlive, true);K는 한 로봇이 한 게임 동안 내는 경우와 같다.N개의 로봇들이 각 라운드 별로 어떤 수를 냈는지 enable 배열로 확인해보자. private static int[] getEnableCheckArr(boolean[] isAlive, int K) { ..