반응형 Java43 [알고리즘] 알고리즘 기말 평가 회고 및 풀이 정리 (JAVA 풀이 5문제) ☑️ 1번 문제 - 소수 찾기 (백트래킹, 순열)🔍 문제 요약주어진 숫자 n 이하의 모든 소수를 찾아 개수를 구하는 문제🧩 내 풀이import java.util.*;class Solution { Set primeSet; // 소수를 저장할 Set (중복 제거) public int solution(String numbers) { primeSet = new HashSet(); boolean[] visited = new boolean[numbers.length()]; // 백트래킹 시작 backtrack(numbers, visited, ""); // 찾은 소수의 개수 반환 return primeSet.siz.. 2025. 7. 5. [Spring] DTO와 VO의 차이 1. DTO란? (Data Transfer Object)계층 간 데이터 전달에 사용되는 객체목적: 데이터 전달가변성 - 값을 자유롭게 바꿀 수 있음getter, setter 있음 2. VO란? (Value Object)VO는 '값' 자체를 의미하는 객체 주소(Address), 이메일(Email), 금액(Money)처럼 하나의 의미 있는 값 단위를 묶어서 나타낸다.목적: 의미 있는 값 표현불변성 - 값이 바뀌지 않음 (setter 없음)equals(), hashCode() 재정의 → 값 자체를 비교 3. 예시로 이해하기: 회원가입 기능1) 사용자가 입력한 정보를 서버로 전달할 때{ "name": "홍길동", "email": "hello@example.com", "password": "1234"} 회.. 2025. 6. 27. [알고리즘] 탑다운(Top-down)과 바텀업(Bottom-up) 방식 - 자바(JAVA) 💡 다이나믹 프로그래밍(DP)이란?큰 문제를 작은 문제로 나눠 푸는 방식으로,중복되는 계산 결과를 저장하여 중복 계산을 줄이는 알고리즘 기법 🔢 피보나치 수열 예제1. Top-Down 방식 (재귀 + 메모이제이션) f(n)부터 f(1)까지 접근int[] memo;int fibonacci(int n) { memo = new int[n + 1]; return dp(n);}int dp(int n) { if (n == 1 || n == 2) return 1; if (memo[n] != 0) return memo[n]; memo[n] = dp(n - 1) + dp(n - 2); return memo[n];} 2. Bottom-Up 방식 (반복문)f(1)부터 f(n)까지 접근i.. 2025. 6. 20. [알고리즘] 순열/조합/부분집합 템플릿 - 자바(JAVA) 1. 순열 (Permutation)n개 중 r개를 순서 있게 뽑기 (중복 X)import java.util.*;public class PermutationWithArray { public static List> permute(int[] nums, int r) { List> ans = new ArrayList(); boolean[] visited = new boolean[nums.length]; backtrack(r, new ArrayList(), nums, visited, ans); return ans; } private static void backtrack(int r, List curr, int[] nums, boolean[] visi.. 2025. 6. 19. [Spring] 스프링의 프레임워크의 특징과 의존성 주입(DI) 예제 정리 『코드로 배우는 스프링 웹 프로젝트』를 기반으로 공부하면서 배운 내용을 정리해보려고 합니다. 🧩 스프링 프레임워크란?자바 기반의 오픈소스 애플리케이션 프레임워크경량 프레임워크: 특정 기능을 위주로 간단한 jar 파일 등을 이용해서 모든 개발이 가능하도록 구성된 프레임워크 🌟 스프링의 주요 특징1) POJO(Plain Old Java Object) 기반의 구성: 일반적인 JAVA 코드를 이용해 객체를 구성하는 방식 그대로 사용 가능 2) 의존성 주입 (Dependency Injection, DI): 객체 간의 의존 관계를 직접 생성하지 않고, 외부에서 주입받도록 하는 방식 3) AOP(Aspect Oriented Programming) 지원: 로깅, 트랜잭션 처리 등 공통 기능을 핵심 로직과 분리 4).. 2025. 6. 17. [프로그래머스] Lv3. 양과 늑대 - 자바(JAVA) 문제 설명2진 트리 모양 초원의 각 노드에 늑대와 양이 한 마리씩 놓여 있습니다. 이 초원의 루트 노드에서 출발하여 각 노드를 돌아다니며 양을 모으려 합니다. 각 노드를 방문할 때마다 해당 노드에 있던 양과 늑대가 당신을 따라오게 됩니다. 이때, 늑대는 양을 잡아먹을 기회를 노리고 있으며, 당신이 모은 양의 수보다 늑대의 수가 같거나 더 많아지면 바로 모든 양을 잡아먹어 버립니다. 당신은 중간에 양이 늑대에게 잡아먹히지 않도록 하면서 최대한 많은 수의 양을 모아서 다시 루트 노드로 돌아오려 합니다. 예를 들어, 위 그림의 경우(루트 노드에는 항상 양이 있습니다) 0번 노드(루트 노드)에서 출발하면 양을 한 마리 모을 수 있습니다.다음으로 1번 노드로 이동하면 당신이 모은 양은 두 마리가 됩니다.이때, 바.. 2025. 6. 15. 이전 1 2 3 4 5 6 ··· 8 다음 반응형