good_da22 's devLog

분류 전체보기 108

백준 1931번 회의실 배정

1931번 회의실 배정 문제 난이도 Silver 1 알고리즘 분류 그리디 알고리즘 정렬 풀이 회의실 배정 문제는 가장 빨리 끝나는 회의를 우선적으로 배정해야한다. 2차원 배열에서 원하는 기준으로 정렬을 하기 위해 compare 메서드 사용 코드 public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTo..

예외(Exception) 1

Exception handling 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우 프로그램 에러 또는 오류 컴파일 에러 컴파일 시 발생하는 에러 런타임 에러 실행 시 발생하는 에러 논리적 에러 실행은 되나, 의도와 다르게 동작 실행 시(runtime) 발생하는 프로그램 오류를 심각도에 따라 두 가지로 구분 에러(error) 프로그램 코드에 의해 수습될 수 없는 심각한 오류 메모리 부족, stack overflow 와 같이 발생하면 복구할 수 없다 디버깅 필요 예외(exception) 프로그램 코드에 의해서 수습될 수 있는 미약한 오류 발생하더라도 수습 가능 예외 처리(exception handling) 예외 발생 시 프로그램의 비 정상 종료를 막고 정상적인..

Java 2022.07.26

제네릭(Generics)

Generics 다양한 타입의 객체를 다루는 메서드, 컬렉션 클래스에서 컴파일 시에 타입 체크 Compile - 컴파일시 타입체크가 안전하다. Runtime - 동작 중에 오류 발생 가능 ex) instanceof미리 사용할 타입을 명시해 형 변환을 하지 않아도 된다. 객체 타입에 대한 안전성 향상 및 형 변환의 번거로움 감소 표현 클래스 또는 인터페이스 선언 시 에 타입 파라미터 표시 public class 클래스 이름 {} public interface 인터페이스 이름 {} 타입 파라미터 (Type Parameter) 단순히 임의의 참조형 타입 컴파일 시 타입 파라미터들은 대입된 타입으로 대체된다. T : reference Type E : Element K : Key V : Value 객체 생성 변수..

Java 2022.07.26

인터페이스(interface)

인터페이스(interface) 일종의 추상클래스 최고 수준의 추상화 단계로 모든 메서드는 추상 메서드이다. JDK 8 에서 default method 와 static method 추가 추상 클래스 사용 보단 인터페이스를 주로 사용오직 추상 메서드와 상수만을 멤버로 가질 수 있다. 밑그림만 그려진 기본 설계도 다른 클래스를 작성하는데 도움을 주기위해 작성 인터페이스 작성 interfac 인터페이스이름 { public static final 타입 멤버이름 = 값; public abstract 메서드이름(매개변수); } 모든 멤버변수는 public static final 상수, 접근제한자 생략 가능 모든 메서드는 public abstract 추상 메서드, 접근제한자 생략 가능 인터페이스 상속 인터페이스는 인터..

Java 2022.07.25

추상 클래스(abstract class)

추상 클래스(abstract class) 클래스가 설계도라면, 추상 클래스 는 미완성 설계도 멤버의 개수와 상관 없이 미완성 메서드(추상 메서드) 를 포함하고 있다. 추상 클래스는 구현이 없는 추상 메서드를 가지고 있기 때문에 객체, 인스턴스를 생성할 수 없으며 상속을 통해서 자식 클래스에서 완성될 수 있다. 하지만 상위 클래스 타입으로써 자식을 참조하는 것은 가능하다. (다형성) 새로운 클래스를 작성에 바탕이 되는 조상 클래스로서 중요한 의미를 가진다. 추상 클래스 선언 abstract class 클래스 이름 { ... } 추상 메서드가 없어도 abstract 키워드를 통해 추상 클래스 선언이 가능하다. 상속 받는 자식 클래스에서 구현을 강제한다. 생성자, 멤버변수, 일반 메서드 모두 가질 수 있다. ..

Java 2022.07.25

백준 5855번 거스름돈

5855번 거스름돈 문제 난이도 Bronze2 알고리즘 분류 그리디 알고리즘 풀이 public class Main { static final int Money = 1000; static int[] change = { 500, 100, 50, 10, 5, 1 }; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int input = Integer.parseInt(br.readLine())..