본문 바로가기

java257

[Programmers] Lv.0 | 겹치는 선분의 길이 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120876 포인트연속된 숫자로 구간을 표현할 때, 끝점은 포함하지 않아도 됨 풀이class Solution { public int solution(int[][] lines) { int[] arr = new int[200]; int answer = 0; for (int i = 0; i 1) { answer++; } } return answer; }}import java.util.*;class Solution { public int solution(int[][].. 2025. 3. 11.
CGLIB 프록시 JDK 동적 프록시 vs CGLIB✔ Spring에서 @Transactional, @Cacheable 같은 AOP 기능을 적용할 때 JDK 동적 프록시와 CGLIB 프록시를 사용함✔ Spring Boot 2.0부터 JDK 동적 프록시가 기본값으로 변경되었으며, 그 이유와 차이를 정리CGLIB 프록시✔ CGLIB(Code Generation Library) 프록시는 바이트코드를 조작하여 클래스 기반으로 프록시 객체를 생성하는 기술✔ Spring에서는 AOP(Aspect-Oriented Programming)와 프록시 패턴에서 사용됨CGLIB 프록시 개념✔ JDK 동적 프록시와 차이점JDK 동적 프록시: 인터페이스 기반 → 인터페이스가 필요함CGLIB 프록시: 클래스 기반 → 인터페이스 없이도 프록시 생성 .. 2025. 3. 1.
[Programmers] Lv.0 / 유한소수 판별하기 / Java 문제 풀이import java.util.*;class Solution { public int solution(int a, int b) { int reducedDenominator = b / gcd(a, b); // 기약분수로 바꾸기 위해 b를 GCD로 나눔 while (reducedDenominator != 1) { // reducedDenominator가 1이 될 때까지 if (reducedDenominator % 2 == 0) { // 2로 나눠지면 나누기 reducedDenominator /= 2; } else if (reducedDenominator % 5 == 0) { // 5로 나눠지.. 2025. 2. 26.
[Spring] JAR & WAR JAR와 WAR 공통점JAR와 WAR 모두 Java의 jar 명령어로 생성된 압축 파일애플리케이션 관련 파일(리소스, 속성 파일 등)을 패키징하여 배포와 실행 용이 JAR (Java ARchive)목적: Java 애플리케이션 실행용 압축 파일내용: Java 클래스 파일, 라이브러리, 리소스 파일요구사항: JRE만 있으면 실행 가능 (java -jar 프로젝트명.jar)특징- 독립 실행형 애플리케이션- 내장 서버 포함 가능- 부트에서 가이드하는 표준은 JAR(JSP, 외장톰켓 사용하지 않음) WAR (Web Application ARchive)목적: 웹 애플리케이션 배포용 압축 파일내용: JSP, Servlet, JAR, 클래스 파일, XML, HTML, JavaScript 등요구사항: 웹 서버(WEB) .. 2025. 2. 11.
[Programmers] Lv.0 / 특이한 정렬 / Java 문제 풀이import java.util.*;class Solution { public int[] solution(int[] numlist, int n) { Arrays.sort(numlist); for (int i = 0; i import java.util.*;class Solution { public int[] solution(int[] numlist, int n) { return Arrays.stream(numlist) .mapToObj(a -> (Integer) a) // 1. int[] 배열을 Integer 객체 스트림으로 변환 .sorted((a, b) -> { // 2. 커스텀 비교 함수로 정.. 2025. 2. 11.
자바 리플렉션(Reflection) 리플렉션(Reflection)클래스, 메소드, 필드 등의 정보를 런타임에 동적으로 조회하고 수정할 수 있는 강력한 기능을 제공함이 기능을 통해 컴파일 타임에 알 수 없는 객체의 정보를 다룰 수 있어 유연한 프로그래밍이 가능함예) 클래스 이름으로 객체를 생성하거나 메소드와 필드를 동적으로 호출할 수 있음 리플렉션의 주요 기능클래스 정보 접근 : Class 객체를 통해 클래스의 메타데이터(이름, 메소드, 필드 등)에 접근할 수 있음Class clazz = Class.forName("com.example.MyClass"); 동적 객체 생성 : 생성자 정보와 파라미터를 기반으로 객체를 동적으로 생성할 수 있음Constructor constructor = clazz.getConstructor(String.clas.. 2024. 7. 30.
[Programmers] Lv.0 / 등수 매기기 / Java 문제 풀이class Solution { public int[] solution(int[][] score) { int n = score.length; int[] ranks = new int[n]; double[] averages = new double[n]; for (int i = 0; i averages[i]) { rank++; } } ranks[i] = rank; } return ranks; }}import java.util.*;class Solution { public int[] solution(.. 2024. 7. 25.
[Programmers] Lv.0 / 로그인 성공? / Java 문제 풀이class Solution { public String solution(String[] id_pw, String[][] db) { String id = id_pw[0]; String pw = id_pw[1]; for (String[] user : db) { String dbId = user[0]; String dbPw = user[1]; if (id.equals(dbId)) { return (pw.equals(dbPw)) ? "login" : "wrong pw"; } } return "fa.. 2024. 7. 25.
[Programmers] Lv.0 / 치킨 쿠폰 / Java 문제 풀이class Solution { public int solution(int chicken) { int serviceChicken = 0; while (chicken >= 10) { serviceChicken += chicken / 10; chicken = (chicken / 10) + (chicken % 10); // 쿠폰으로 받은 서비스 치킨 + 남은 치킨 } return serviceChicken; }}class Solution { public int solution(int chicken) { int serviceChicken = chicken / 9; .. 2024. 7. 23.
[Programmers] Lv.0 / 이진수 더하기 / Java 문제 풀이class Solution { public String solution(String bin1, String bin2) { int num1 = Integer.parseInt(bin1, 2); int num2 = Integer.parseInt(bin2, 2); return Integer.toBinaryString(num1 + num2); }}class Solution { public String solution(String bin1, String bin2) { return Integer.toString(Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2), 2); }} 출처https:/.. 2024. 7. 18.
[Programmers] Lv.0 / A로 B 만들기 / Java 문제 풀이import java.util.Arrays;class Solution { public int solution(String before, String after) { // case 1: 주어진 예시가 문자열 단순 뒤집기만 있길래 이렇게 풂 // String reversed = new StringBuilder(before).reverse().toString(); // return reversed.equals(after) ? 1 : 0; // case 2: 위 코드 적용 시 실패하는 경우 있어, 문자열 요소 비교로 수정 char[] beforeChars = before.toCharArray(); char[].. 2024. 7. 17.
[Programmers] Lv.0 / k의 개수 / Java 문제 풀이class Solution { public int solution(int i, int j, int k) { int result = 0; String kStr = "" + k; for (int n = i; n class Solution { public int solution(int i, int j, int k) { String str = ""; for (int n = i; n  출처https://school.programmers.co.kr/learn/courses/30/lessons/120887 2024. 7. 16.