해설 4

[백준 2225번] 합분해 - java

문제 설명1. 0부터 N까지의 정수 K 개를 더해서 합이 N이 되어야 한다.2. 즉 N번 계산해서 K가 나오도록 풀이 과정 1. 이거 DP이다. 2. DP는 일단 무식하게 풀면서 점화식을 찾아보는 것이 중요하다. 3. 그래서 풀어보면요런 식으로 나온다.한번 계산할 때에는 (0) | (1) | (2) | (3) | (4)두번 계산할 때에는 (00) | (10) (01) | (03) (12) (21) (30) | (04)(13)(22)(31)(40)이런 식으로 간다. 그래서 저거 잘 들여다 보면 점화식이 대충 보인다.val[i][j] = val[i-1][[j] + val[i][j-1]이런 식으로 그래서 일단 전체를 1로 초기화하고 더해가면 된다. 코드import java.util.*;public class ..

알고리즘 공부 2024.11.04

[백준 1593번] 문자 해독 - java

문제 설명1. 해석하고 싶은 문자 W가 주어진다.2. 그게 중간에 들어가는 S가 주어진다..3. 이거 뭔소린가.. 엄청 헤맸는데, 말하자면 둘째줄 W의 각각 char 들이 순서와 상관없이 S에 어떻게 있는지를 물어보는 문제이다.즉, 주어진 보기를 보았을 때에첫 번째로 "Acad" (3번째 문자부터), 두 번째로 "cAda" (4번째 문자부터)에서 "cAda"와 동일한 문자 빈도를 가진 부분 문자열을 찾는 문제라는 것이다.4. 앞의 숫자 두개는 별의미 없다. 풀이 과정 1. 딱 봐도 S의 길이가 매우 길다. 2. 브루트포스로는 못풀것 같은데, 슬라이딩 윈도우를 통해 구현한다. 3. W의 문자들이 나타나는 갯수를 구해놓고, 그 크기만큼 S에서 하나씩 찾는다. 하나씩 더하고 빼면서 비교해주면 된다. 4.- [..

알고리즘 공부 2024.10.11

[HackerRank] repeated-string java 풀이

문제 설명1. s 문자열이 n개 숫자가 될 때까지 반복된다.2. 그 문자에서 'a' 의 갯수를 구하면 된다.3. n의 크기는 크다. 풀이 과정 1. n이 길어서 브루트포스는 안된다. 2. 처음 문자열에서 a의 갯수를 구함 3. n만큼의 길이 내에서 저 문자열이 몇번 반복되는지 구해서 그만큼 곱한다. 4. n에서 반복된 후에 나머지 짜잘한 애들 중 a가 몇개 있는지 구해서 더하면 된다.     https://www.hackerrank.com/challenges/repeated-string/problem?isFullScreen=true&h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=warmup

알고리즘 공부 2024.10.08

[HackerRank] Jumping on the Clouds java 풀이

문제 설명1. 간단한 DP 문제이다.2. '0' 만 밟을 수 있다고 생각하면 편하다.3. 현재 위치에서 1칸 2칸을 점프할 수 있다.4. 그래서 마지막까지 몇번의 점프가 최소인지를 구하면 된다. 풀이 과정 1. 간단하다. 0부터 시작해서 마지막까지 가고, 지금 다음 구름에는 현재 위치에서 점프하는 때(현위치 값 + 1)가 최소인지 파악해서 넣어주면 된다. 2. 1은 그냥 넘기면 된다. 3. 끗  https://www.hackerrank.com/challenges/jumping-on-the-clouds/problem?isFullScreen=true&h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=warmup

알고리즘 공부 2024.10.07