[JAVA] Calendar 클래스
2022. 10. 3. 23:50
JAVA/기본 문법
Calendar 클래스란? 전에 https://chb2005.tistory.com/54#no4 여기서 LocalDateTime 클래스로 현지 시간을 나타내는 법을 정리했음 Calendar 클래스도 이와 비슷하게 JAVA에서 제공하는 날짜 관련 클래스 Calendar 클래스 사용 예제 import java.util.Calendar; public class CalendarTest { public static void main(String[] args) { Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR); int month = now.get(Calendar.MONTH); int date = now.get(Calendar.DATE..
[JAVA] Big Integer
2022. 10. 3. 22:21
JAVA/기본 문법
Big Integer 란? JAVA에서 int의 범위는 약 -21억 ~ 21억, long의 범위는 약 -9 * 10^18 ~ 9 * 10^18 long까지 사용하면 매우 큰 범위이지만, 이를 넘어가는 숫자를 사용해야 될 수도 있음 이 때, Big Integer을 사용하면 됨 ( 문자열을 사용하기 때문에 이 범위를 넘어가는 일은 거의 없을듯 함 ) Big Integer 사용 예제 public static void main(String[] args) { BigInteger x = new BigInteger("1111111111111111111111111111111"); BigInteger y = new BigInteger("2222222222222222222222222"); System.out.println..
[JAVA] String Builder, String Buffer
2022. 10. 3. 22:08
JAVA/기본 문법
String Builder에 관해서는 전에 https://chb2005.tistory.com/73 여기서 조금 다룬 적이 있음 출력할 때 System.out으로 직접 출력하는 것보다 StringBuilder을 사용해 출력하는 것이 더 빨랐었음 왜 더 빠른지 이 글을 보면 알 수 있을 것이라 생각함 String Builder, String Buffer 란? String의 경우 빈번하게 문자열을 변경할 때는 비효율적임 String이 내용을 변경하기 위해선 새로운 객체를 생성하고 복사하는 방식이기 때문 ex) String str = "hi"; 라고 하면 "hi" 라는 Literal 객체를 생성하고 이를 복사해 옴 str = "hello"; 라고 다시 해주면 다시 "hello" 객체 생성 후 복사해 옴 Stri..
[JAVA] 추상 클래스(Abstract Class)와 인터페이스(interface), 인터페이스의 default method
2022. 10. 3. 21:54
JAVA/기본 문법
추상 클래스 란? 하나 이상의 추상 메소드를 포함한 클래스 추상 메소드 란? 선언부만 존재하고, 구현부는 존재하지 않는 메소드 자식 클래스가 추상 클래스를 상속받고, 자식 클래스에서 추상 메소드를 오버라이딩을 통해 직접 구현해야 함 반드시 특정 메소드를 만들도록 에러를 발생시켜서 강제성 부여 abstract static class Animal { abstract void speak(); } static class Dog extends Animal { @Override void speak() { System.out.println("멍멍"); } } 만약 위 코드에서 Animal을 상속받은 Dog 클래스에 speak 메소드가 구현되지 않았으면 에러 발생 또한 추상 클래스로는 객체를 생성할 수 없음 Anima..
[JAVA] 다형성(Polymorphism) 정의 및 활용(UpCasting, DownCasting) + instanceof
2022. 10. 3. 21:12
JAVA/기본 문법
다형성(Polymorphism) 이란? 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미 객체들의 타입이 다르면 똑같은 메세지(같은 메소드명)가 전달되더라도 서로 다른 동작을 함 ex) cat.speak() => 야옹, dog.speak() => 멍멍 다형성은 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나임 다형성 예제 public class Test { public static void main(String[] args) { Dog dog = new Dog(); Animal animal = new Dog(); // Animal animal = (Animal) new Dog(); 와 동일 animal.speak(); animal.speak2(); // 에러 발생 Dog dog2 = new A..
[JAVA] 백준 2188 - 축사 배정
2022. 8. 19. 20:11
JAVA/백준(BOJ) 문제풀이
문제 https://www.acmicpc.net/problem/2188 2188번: 축사 배정 농부 존은 소 축사를 완성하였다. 축사 환경을 쾌적하게 유지하기 위해서, 존은 축사를 M개의 칸으로 구분하고, 한 칸에는 최대 한 마리의 소만 들어가게 계획했다. 첫 주에는 소를 임의 배정해 www.acmicpc.net 해결 방법 DFS로 해결했는데 이 알고리즘을 이분매칭이라고 하는것 같음 => 나중에 다시 알아봄 예제를 풀며 해결 방법 정리 ex) 입력이 아래와 같이 들어왔다고 가정 5 5 2 2 5 3 2 3 4 2 1 5 1 1 3 1 2 5 1번 소는 2, 5번 축사에 가고 싶어함 확인 후 비어있는 축사가 있으면 바로 집어 넣음 1, 2, 3번 소는 비어 있는 축사에 바로 들어갈 수 있음 이제 4번 소가..
[JAVA] 백준 2176 - 합리적인 이동경로 (Reverse Dijkstra + DP)
2022. 8. 19. 14:48
JAVA/백준(BOJ) 문제풀이
문제 https://www.acmicpc.net/problem/2176 2176번: 합리적인 이동경로 첫째 줄에 정점의 개수 N(1 정답은 몇개일까?? 1 -> 2로 갈 수 있는 방법은 총 6개 [1->2] [1->3->4->5->2] [1->3->5->2] [1..