본문 바로가기
반응형

분류 전체보기110

최장 증가 부분 수열(Longest Increasing Subsequence) 최장 증가 부분 수열(LIS) LIS란? - 임의의 수열이 주어졌을 때 이 수열의 부분 수열 중 원소가 증가하는 부분 수열을 만든다. 이 부분 수열 중 길이가 최장인 수열을 의미한다. - 부분 수열이란, 원래의 수열 중 임의의 원소를 삭제한 수열을 말한다. - Ex) 원래 수열 : 1 9 8 7 5 2 부분 수열 : 1 8 7 2 / 9 5 2 / 1 5 등 증가 부분 수열 : 1 9 / 1 8 / 1 7 등 LIS 알고리즘1 - 완전 탐색 - 수열의 원소를 하나씩 탐색하며, 해당 원소가 포함이 될 지 안될 지를 선택하며 탐색한다. - 원소가 N개인 경우 시간 복잡도는 O($2^N$)가 되기 때문에 매우 비효율적이다. LIS 알고리즘2 - DP - 수열의 원소를 하나씩 탐색하며, 해당 수열이 마지막으로 .. 2021. 3. 25.
[JAVA] Getter / Setter Getter / Setter Getter / Setter 란? - 외부에서 객체의 데이터를 마음대로 접근하는 경우 무결성을 해칠 수 있다. - 외부에서 데이터를 접근하지 못하도록 설정하고, 데이터를 접근하고 싶은 경우에는 직접 접근이 아닌 메소드를 통해 접근, 조작할 수 있도록 한다. - Getter를 이용하여 외부에서 적절한 데이터를 접근할 수 있도록 만들어준다. - Setter를 이용하여 외부에서 적절한 데이터를 저장할 수 있도록 만들어준다. - 객체 지향 프로그래밍에서는 메소드를 이용하여 데이터를 변경하는 방법을 선호한다. Getter / Setter 작성 방법 - 클래스의 필드의 멤버 변수를 private로 설정한다. - 데이터를 외부에서 입력 받는 경우에는 setter메소드와 매개변수로 입력 받.. 2021. 2. 4.
[JAVA] 접근제한자, 정보은닉과 캡슐화 . 정보은닉 정보은닉이란? - 객체의 구체적인 정보를 노출하지 않고, 외부에서 직접 접근하는 방법을 제한하는 것. - 인스턴스 변수의 접근 허용 범위를 제한하여 정보를 은닉한다. 자바의 접근제어 지시자(Access Control Specifiers) 구분 클래스 내부 동일 패키지 상속받은 클래스 이외의 영역 private O X X X dafault O O X X protected O O O X public O O O O - default : 인스턴스 변수와 인스턴스 메소드에 아무런 지시자를 선언하지 않은 경우. - 이외의 영역 : 서로 다른 패키지에 포함되어 있는 두 클래스 사이의 접근 - 클래스의 경우 default와 public만 선언이 가능하다. public 클래스 - 자바에서 public 클래스는 .. 2021. 2. 4.
[JAVA] 정적 메소드(Static Method) & 정적 변수(Static Variable) 정적 메소드(Static Method) == 클래수 메소드 정적 메소드의 특징 - 인스턴스가 필요하지 않는 메소드 - static 키워드를 이용하여 메소드를 선언한다. - 클래스명을 사용하여 정적 메소드를 호출한다. - 정적 메소드와 정적 메소드가 아닌 메소드를 섞어서 클래스를 선언할 수 있지만, 정적 메소드가 아닌 메소드가 있다면 그 클래스의 인스턴스를 만들 수 있는 방법은 반드시 있어야 한다. - 정적 메소드에서는 정적 변수가 아닌 변수(인스턴스 변수)를 쓸 수 없다. - 정적 메소드에서는 정적 메소드가 아닌 메소드도 쓸 수 없다. - 정적 메소드 안에서는 this 키워드를 사용할 수 없다. - 클래스가 메모리에 로딩 될 때 자동으로 선언된다. 정적 메소드 예시 import java.util.*; p.. 2021. 2. 4.
반응형