초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입력 예제 price return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; for(int i=0; i
환형 큐 구현해보기 QueueInterface.java public interface QueueInterface { E put(E item); // 요소 추가 E get(); // 요소 삭제 } Queue.java import java.util.EmptyStackException; public class Queue implements QueueInterface { // 환형 큐 static final int defaultLength = 10; private Object[] array;// 요소를 담을 배열 private int front; // front private int rear; // rear Queue() { this.array = new Object[defaultLength]; this.fro..
Array로 Stack 구현해보기 stackInterface.java public interface StackInterface { E push(E item); // 요소 추가 E pop(); // 요소 삭제 E getLast(); // 마지막 요소 확인 int size(); // 요소 개수 void clear(); // 스택 비우기 boolean isEmpty(); // empty 여부 } stack.java import java.util.Arrays; import java.util.EmptyStackException; public class Stack implements StackInterface { private final int defaultLength = 10; private Object[] ar..
~ 7-39 JDK 1.8 > staticc, 상수, 디폴트 메소드 인터페이스 : 추상 메소드의 집합, 구현된 것이 없는 설계도, 껍데기 (모든 멤버가 public) 두 객체간의 연결, 대화, 소통을 돕는 중간 역할을 한다 인터페이스 조상은 인터페이스만 가능 다중 상속 가능 (추상 메소드는 충돌해도 문제 없음, 실제 구현은 구현부에서 하기 때문에) 추상클래스 vs 인터페이스 공통점: 추상 메소드를 가지고 있다. 차이점: 인터페이스는 인스턴스 변수를 가질 수 없다. 생성자x, 인스턴스 메소드 x (즉 인터페이스는 추상 메소드만 가지고 있다.) 인터페이스를 이용한 다형성 : 인터페이스 타입 매개변수는 인터페이스 슈현한 클래스의 객체만 메소트의 리턴 타입으로 지정 가능 장점: 개발시간 단축 가능 변경에 유리한..
~ 7-37 제어자 : 클래스와 클래스 멤버에 부가적인 의미 부여 => 접근 제어자 : public, protected, (default), private (외부로부터 데이터를 보호하기 위해 사용) 그 외: static, final, abstract, native, transient, synchronized, volatile, strictfp 캡슐화: 캡슐처럼 내용물이 싸여있어 외부 접근 불가능 다형성: 여러가지 형태를 가질 수 있는 능력 = 조상타입 참조 변수로 자손 타입의 객체를 다루는것 ex) TV t = new SmartTV(); => 장점 : 다형적 매개변수, 하나의 배열로 여러가지 객체 다루기 참조 변수의 형변환: 사용할 수 있는 멤버의 갯수를 조절하는 것, 조절하기 위해 사용 : 조상, 자손..
~ 7-14 오버 로딩 : 이름은 같지만 매개 변수 타입이나, 개수가 다른 메소드를 중복 선언할 수 있는 방법 오버 라이딩 : 조상 클래스의 함수를 자식 클래스에서 재정의 하는 것 => 조건 : 선언부가 조상클래스 메소드와 일치해야한다. 접근 제한자 조상 클래스 > 자식 클래스 예외는 조상 클래스 메소드보다 많이 선언할 수 없다. 생성자 : 인스턴스 초기화 메소드 이름이 클래스 이름과 같아야 한다. 리턴값이 없지만 void를 붙이지 않는다. 모든 클래스는 1개 이상의 생성자를 가져야 한다. (컴파일러가 기본 생성자를 자동 생성하긴 한다.) : this() : 생성자에서 다른 생성자 호출 시 사용, 첫 줄에서만 호출 가능 참조변수 this : 인스턴스 자신을 가리키는 참조 변수 지역변수, 인스턴스 변수 구..
~ ch6-29 JDK 1.8 부터는 함수형 객체지향 : 객체를 중심으로 삼는 프로그래밍 방법론, 또는 규칙 객체 = 속성 + 기능 class = 공통된 속성과 기능을 한데 묶어놓은 것 = 설계도 class 를 인스턴스화(인스턴스 생성) 한 것이 인스턴스(객체). 즉, class를 기반으로 만들어진 실체가 객체이다. 장점 코드 재사용 가능 유지보수 용이 중복 코드 제거 특징 캡슐화 상속 추상화 다형성 변수 { int iv; // 인스턴스 변수: 인스턴스가 생성될 때마다: 개별적인 값 static int cv; // 클래스 변수: 클래스가 메모리에 올라갔을 때 "딱 한번": 공통적인 속성, 값 void method() { int lv = 0; // 지역 변수: 변수 선언문이 수행되었을 때, 메소드 종료시 ..