2025/03/13 3

[DP] Top-down 과 Bottom-up 의 차이점과 장단점, 쓰는 경우

1.Top-down 과 Bottom-upDP를 푸는 방식에는 두 가지가 있다.Top-Down : 큰 부분부터 작은 부분으로 쪼개지며 답을 찾는다(재귀 사용)Bottom-up : 작은 부분부터 큰 부분까지 모두 답을 찾는다. 즉  큰 문제를 작은 문제로 쪼개서 그 답을 저장해두고 재활용한다. 2. Top-down 장점모든 부분을 다 구하지 않아도 될 때 시간복잡도 면에서 유리하다. Bottom-up 방식은 문제 해결에 필요하지 않은 부분까지 모두 구하기 때문에 메모리나 시간상 불리하다.그 예시로 백준 무한 수열이 있다. 3. Bottom-up 장점모든 부분을 다 구해야 할 때는 Bottom-up이 유리하다. Top-down은 재귀함수를 구현하기 때문에 stack이 쌓여 불필요한 메모리가 낭비될 수 있다.그..

CS/알고리즘 2025.03.13

[프로그래머스] 완주하지 못한 선수

1. 내 풀이정렬 후 다른 게 있으면 바로 리턴, 끝까지 다른게 안나오면 마지막 값 리턴import java.util.*;class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant); Arrays.sort(completion); for(int i = 0; i    2. 다른 분 풀이HashMap을 이용하여 푸셨다. 둘다 원리는 같은 것 같다.import java.util.HashMap;class Solution { public String solution(Str..

[프로그래머스] 둘만의 암호

1. 다른 분의 풀이를 참고한 풀이쉽게 char을 하나씩 증가시키면서 비교하면 되는데 일단 index만큼 증가시켜놓고 skip된게 있으면 그제서야 하나씩 더 올리려고 했던 나,,, 괜히 쉽게 가려다가 더 어렵게 가는 경우가 많은 것 같다. 이런건 어떻게 해야하나!그리고 간과했던 것 string.contains! 함수들을 진짜 한번은 정리하는 시간이 필요한 것 같기도 하당. class Solution { public String solution(String s, String skip, int index) { String answer = ""; char[] chars = s.toCharArray(); StringBuilder sb = new StringBuilder..