본문 바로가기

분류 전체보기

[Java] 접근 제한자(Access Modifier) / 접근 수준 지시자(Access-level Modifier) mian() 메소드가 없는 클래스는 대부분 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다 라이브러리 클래스는 외부 클래스에서 접근할 수 있는 멤버와 접근할 수 없는 멤버를 구분하여 설계하는 것이 바람직하다 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나, 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하게 하거나, 그리고 특정 메소드를 호출할 수 없도록 제한한다 자바는 이러한 기능을 구현하기 위해 접근 제한자 (Access Modifier) 를 제공한다 이는 접근 수준 지시자 (Access-level Modifier) 라고도 한다 접근 제한자에는 public < protected < default < private 가 있다 (제한이 작은 순서) public : 모든 패키.. 더보기
[Java] 정적 멤버 static (static 필드, static 메소드) 정적(static) 멤버 클래스에 고정된 멤버로서 객체(인스턴스)를 생성하지 않고 사용할 수 있다 각각 정적 필드(변수), 정적 메소드가 있다 정적 멤버를 선언 할 때에는 앞에 static만 붙이면 된다 ex ) double PI = 3.141592; -> static double PI = 3.141592; 1.1 정적 필드 필드를 선언할 때, 객체마다 가지고 있을 필요성이 없는 공용적인 데이터라면 정적 필드로 선언하는 것이 좋다 ex ) public class Calculator { String color;//객체마다 다른 색깔 static double PI = 3.141592;//객체마다 공용된 PI 값 ... } + ) 위 코드에서 PI 같이 후에 바뀌지 않는 상수(static final)는 " s.. 더보기
[C code] DP를 이용한 LIS(Longest Increasing Subsequence; 최장 증가 수열) 최장 증가 부분 수열, LIS는 임의의 수열에서 몇 개의 수를 제거하여 만든 부분수열 중 오름차순으로 정렬된 가장 긴 수열을 말한다 예를 들어 다음 수열이 주어졌다고 하자. 10 20 10 30 20 50 위 수열에서 몇 개의 수를 제거해 부분수열을 만들 수 있다. 10 10 30 20 (20, 20 제거) 10 30 20 50 (20, 10 제거) 20 10 30 (10, 20, 50 제거) 10 20 50 (10, 30, 20 제거) ... 이들 중 네번째 수열은 오름차순으로 정렬되어 있다. 이를 '증가 부분 수열'이라고 한다. 그리고 이런 증가 부분 수열 중 가장 긴 수열을 '최장 증가 부분 수열 (LIS)'이라 한다. 부분수열 10 20 30 50은 LIS이다. 한 수열에서 여러 개의 LIS가 나.. 더보기
[C code] 택시 기하학 / M_PI " 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합 " 원점을 중심으로 택시 기하학에서의 원은 결국, (1,0) (0,1) (-1,0) (0,-1) 네 점을 지나는 네 직선으로 이루어진 사각혁이 된다. 결국 원의 넓이는 (2R)^2 * (1/2) 이고, 2 * R^2 이다. - https://www.acmi.. 더보기
[C][Python] 덱 (Deque ; Double-Ended Queue) 덱, Deque, Double-Ended queue, 이름에서 알 수 있듯이 양쪽 끝에서 삽입과 삭제가 모두 가능한 큐임을 알 수 있다 (큐는 선입선출만 가능) 그러나 스택과 큐와 마찬가지로 데이터를 중간에 삽입, 삭제는 용이하지 않다 -> pushFront() : Front 에서의 삽입 pushBack() : Back 에서의 삽입 popFront() : Front 에서의 삭제 popBack() : Back 에서의 삭제 1. 배열을 이용한 코드는 다음과 같다 #include #include int deque[20000]; int back = 10000; int front = 10000; int main() { int num; char str[12]; scanf("%s", str); if(str[1] ==.. 더보기