![[Java] 레코드, 롬복(lombok)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC79UE%2FbtsnWFT0sL4%2FFOykNvEljY8vyM48OzLYP1%2Fimg.jpg)
이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 레코드(record)데이터 전달을 위한 DTO(Data Transfer Object)를 작성할 때 반복적으로 사용되는 코드를 줄이기 위함Java 14부터 레코드가 도입되었다.필드는 읽기만 가능하도록 private final로 선언됨필드가 읽기만 가능하므로 setter가 없고, getter 이름이 단순히 필드 이름이다.동등 비교를 위해 hashCode()와 equals() 메소드가 재정의 되어있다.toString()메소드가 재정의 된다. public record Member(String id, String name, int age) {}이렇게 단순하게 클래스명 앞에 recode 만 붙이..
![[Java] 백준 14단계 - 7785번 문제 (회사에 있는 사람)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FphW5D%2FbtsoTnFgqLv%2FrdqhK0Al0wYkKZmOPP1cf0%2Fimg.png)
문제설명 소스코드 import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); HashMap m = new HashMap(); for (int i = 0; i < N; i++) { String name = sc.next(); String log = sc.next(); if (m.containsKey(name)) m.remove(name); //최초 입력이 아니..
![[Java] 백준 15단계 - 1620번 문제 (나는야 포켓몬 마스터 이다솜)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlIv4L%2FbtsoZnYld7F%2FE0Pndv79GPFgsBczKSEuYk%2Fimg.png)
문제설명 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int..
![[JAVA] API Document](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1OvNX%2FbtsnF4lM9lL%2FqY2omwrHsw1Hq3wFXN4zi1%2Fimg.jpg)
이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 자바 표준 모듈에서 제공하는 라이브러리는 방대하기 때문에 쉽게 찾아서 사용할 수 있도록 도와주는 API(Application Programming Interface) 문서가 있다. 라이브러리가 클래스와 인터페이스의 집합이라면, API 도큐먼트는 이를 사용하기 위한 방법을 기술 한 것이다. API 도큐먼트는 자바 표준 모듈에 있는 패키지 중 public과 prtected로 접근 제한된 클래스와 메소드만 소개한다. 자바 표준 모듈에 있는 패키지 중에서 default와 private로 접근 제한된 클래스와 메소드는 접근 제한자에 대해 잘 알고 있다면 우리는 접근할 수 없다는 것을 알 수 있..
![[Java] 백준 15단계 - 1735번 문제 (분수 합)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS9vj8%2FbtsoZ1m8yHC%2FWrHAWkjKisNjJM3Gcx4fAK%2Fimg.png)
문제설명 소스코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int arr[] = new int[4]; for(int i = 0; i < 4; ++i) arr[i] = in.nextInt(); int a = (arr[0] * arr[3]) + (arr[1]* arr[2]); int b = arr[1] * arr[3]; int minDivisor = gcd(a, b); System.out.println(a / minDivisor + " " + b / minDivisor); } public static int gcd(int a, i..
![[Java] 백준 15단계 - 13241번 문제 (최소공배수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcXGqw%2Fbtso0t4S1eS%2FPOQ5kQ1pkQippGKK8NMma0%2Fimg.png)
문제설명 소스코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); long a = in.nextLong(); long b = in.nextLong(); System.out.println(a * b / gcd(a, b)); } public static long gcd(Long a, Long b) { if(b == 0) return a; else return gcd(b, a % b); } } 설명 최소공배수와 최대공약수와의 관계는 아래와 같다. 두 자연수의 곱 = 최대공약수 × 최소공배수 최소공배수 = 두 자연수의 곱 / 최대공약수 유클..
![[JAVA] 사용자 정의 예외](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXD6R6%2FbtsnIKf4CHJ%2FggQ2bU3uK2TFlF2EKkfEAk%2Fimg.jpg)
이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 사용자 정의 예외사용자 정의 예외란 예를 들어 은행의 뱅킹 프로그램에서 잔고보다 더 많은 출금 요청이 들어온 경우에는 잔고 부족 예외를 발생 시킬 필요가 있다.하지만 잔고 부족 예외는 자바의 표준 라이브러리에는 존재하지 않기 때문에 직접 예외 클래스를 정의해서 사용해야 한다.이렇게 사용자가 직접 예외 클래스를 정의하는 것을 사용자 정의 예외 클래스라고 한다. 사용자 정의 예외는 일반 예외와 실행 예외로 선언할 수 있다.일반 예외 : 컴파일러가 체크, Exception의 자식 클래스로 선언실행 예외 : 컴파일러가 체크하지 않음, RunTimeException의 자식 클래스로 선언사용자 ..
![[Java] 백준 15단계 - 1934번 문제 (최소공배수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkAqHo%2FbtsoZLdp4Vw%2Fny6Cwk6nWtsKvt6ABhG2P1%2Fimg.png)
문제설명 소스코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int T = in.nextInt(); for(int i = 0; i < T; i++) { int a = in.nextInt(); int b = in.nextInt(); System.out.println(a * b / gcd(a, b)); } } public static int gcd(int a, int b) { if(b == 0) return a; else return gcd(b, a % b); } } 설명 최소공배수와 최대공약수와의 관계는 아래와 같다. 두 자연수의..