성장일기

내가 보려고 정리하는 공부기록

2024/09 13

[백준] 11727: 2×n 타일링 2 (DP) - JAVA

알고리즘 분류 - dphttps://www.acmicpc.net/problem/11727   # 문제 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×17 직사각형을 채운 한가지 예이다. # 예제입력 :  첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)12 출력 :  첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.2731 # 필요개념어떻게 점화식을 세울지 고민하다가 한 개씩 그려보았다. 모양을 하나하나 그려볼까 하다가 귀찮아서 위 사진처럼 그렸는데, 덕분에 점화식을 세우기 쉬워졌다.n = 3인 경우, n = 1인 타일 뒤에 두 칸을 더 이용할 수 있고 n = 2인 타일 뒤에는 2x1 타..

[백준] 1806: 부분합 (누적합, 투포인터) - JAVA

알고리즘 분류 - 두 포인터https://www.acmicpc.net/problem/1806   # 문제10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. # 예제입력 :  첫째 줄에 N (10 ≤ N 10 155 1 3 5 10 7 4 9 2 8  출력 :  첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다.2 # 필요개념이 문제에서 신경써야 할 조건은 두 가지였다.합이 S 이상이어야 한다수열의 길이가 가장 짧아야 한다그래서 나는 누적합을 구하기로 했다. 만약 여지껏 수열의 합이 S보다 작다면, 계속..

[백준] 20922: 겹치는 건 싫어 (투 포인터) - JAVA

알고리즘 스터디 (투포인터)https://www.acmicpc.net/problem/20922  # 문제홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 K$K$개 이하로 들어 있는 최장 연속 부분 수열의 길이를 구하려고 한다. 100000$100\,000$ 이하의 양의 정수로 이루어진 길이가 N$N$인 수열이 주어진다.  이 수열에서 같은 정수를 K$K$개 이하로 포함한 최장 연속 부분 수열의 길이를 구하는 프로그램을 작성해보자. # 예제입력 : 첫째 줄에 정수 N$N$ (1≤N≤200000$1 \le N \le 200\,000$)과 K$K$ (1≤K≤100$1 \le K \le 100$)가 주어진다.둘째 줄에..

728x90