매 순간마다 가장 최적의 답을 선택하여 최종의 답을 도출하는 방법 매 순간의 최적해가 문제에 대한 최적해이다. 한번의 선택이 다음 선택에는 무관하다. 문제를 해결하기 위한 아이디어를 직관적으로 찾고 그 아이디어의 정당성을 검토할 수 있어야 한다. 1. 거스름 돈 문제 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재 손님에게 거슬러 주어야 할 돈이 N원일 때 거슬러 주어야 할 동전의 최소 개수를 구하기 (단, 거슬러 줘야 할 돈 N은 항상 10의 배수) 해결 방안 가장 큰 단위부터 돈을 거슬러 준다. why? 큰 단위가 항상 작은 단위의 배수이다! 500원을 각각 100원 5개, 50원 10개, 10원 50개 400원 동전이 있다면 800원을 거슬러 주는데 문제가..
12장 Object 클래스 모든 클래스는 Object 클래스를 상속받고 있다. Object 클래스의 매소드 객체 처리를 위한 메소드 String toString() boolean equals() int hashCode() Class getClass() Object clone() void finalize() toString 모든 경우에 toString를 overriding해서 사용하지 않아도 되지만 객체의 상태를 쉽게 보려면 해주는 것이 좋다. public class Member { public String name; public String phone; public String email; public String toString() { return "name" + this.name + "phone" +..
10장 상속 extends 예약어를 사용해서 상속을 받을 수 있다. public class Parent { public Parent() { System.out.println("parent 생성자"); } public void printName() { System.out.println("parent printName()"); } } public class Child extends Parent { public Child() { System.out.println("child 생성자"); } } Parent를 상속받은 Child 클래스는 printName 메소드를 사용할 수 있다. Child child = new Child(); child.printName(); Child 클래스가 생성될 때 Parent 클래스..