목록분류 전체보기 (718)
쌓고 쌓다
슈퍼 클래스와 서브 클래스의 생성자 실행 순서 class A { A() { System.out.println("A 생성자 실행"); } } class B extends A { B() { System.out.println("B 생성자 실행"); } } class C extends B { C() { System.out.println("C 생성자 실행"); } } public class Main{ public static void main(String[] args) { C c = new C(); } } 실행 결과 C는 B를 상속받고, B는 A를 상속받는 구조이다. 여기서 C 클래스의 객체를 생성하면 A-B-C순서로 생성자가 실행 된다. 즉, 슈퍼 클래스의 생성자를 먼저 실행한다. 그 후 서브 클래스의 생성자를..
https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net #include #include using namespace std; deque dq; int N; int main(void) { cin >> N; int num; for (int i = 0; i > num; dq.push_back(make_pair(num,i+1)); // 덱에 이동해야할 수와 몇번째였는지 저장 } while (!dq.empty()..
final 키워드는 3가지로 사용된다. 1. final 클래스 final class finalClass{ } class subClass extends finalClass // 컴파일 에러 { } 클래스 앞에 final 키워드를 사용할 경우 그 클래스는 상속 받아 사용할 수 게 된다. 즉, final 클래스는 상속 받을수 없게 된다. 2. final 함수(메소드) class superClass{ public final int sum(int a,int b) { return a+b; } } class subClass extends superClass{ public int sum(int a,int b) // 컴파일 에러 { return a+b+10; } } 함수에다 final 키워드를 사용한다면 그 함수는 오버..
모든 노드에서 모든 노드의 최단 경로를 구할 때 사용 양의 가중치와 음의 가중치 모두 사용 가능 하지만 음의 가중치 일 경우 사이클이 없어야함. 기본 초기화 방법 V : 정점의 개수 E : 간선의 개수 arr[i][j] : i에서 j로 가는 비용 int V, E; int arr[101][101]; int a, b, c; cin >> V >> E; for (int i = 0; i > a >> b >> c; // a에서 b로 다닐수 있는 비용 c인 길 arr[a][b] = c; arr[b][a] = c; } 이렇게 처음에 정점의 개수와 간선의 개수를 입력받고 간서의 개수만큼 a b c 를 입력 받는다( a에서 b로 다닐 수 있는 비용 c인 길 ) 위의 코드는 양방향으로 길을 놓..
https://www.acmicpc.net/problem/1956 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의 www.acmicpc.net #include #include using namespace std; int V, E; int arr[401][401]; int res = 987654321; int main(void) { int a, b, c; cin >> V >> E; for (int i = 0; i > a >> b >> c; arr[a][b] = c; } for..
static과 non-static의 이해 우리 사람들은 태어나면 눈을 가지게 됩니다 이것은 사람마다 개별적인 소유입니다. 눈은 사람이 없이 존재할 수 없습니다. 사람이 죽으면 눈도 없어지죠. 사람의 탄생과 함께 존재하고 소멸과 함께 없어집니다. 하지만, 눈은 사람마다 있지만 다 다르고 공유하질 않습니다. 공기는 우리가 태어나기 전이나 죽어도 존재합니다. 모든 사람들이 공유하며 사용하죠 이것이 눈과의 차이점입니다. 눈은 non-static, 공기는 static 멤버라고 생각할 수 있습니다. static 멤버 선언 class Sample{ int A; // non-static 변수 void g() // non-static 함수 { A=10; } static int B; // static 변수 static v..
https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net #include #include using namespace std; int arr[10001]; int dp[10001]; int N; int main(void) { cin >> N; for (int i = 1; i > arr[i]; for (int i = 1; i
클래스의 접근 지정 public class Person{ } 이 Person 클래스는 어떤 패키지에 있든 상관 없이 Person 객체를 생성하든지 사용이 가능하다. 2. 디폴트 클래스(접근 지정자 생략) class Person{ } 위와 같이 생략을 한 경우, 같은 패키지 내의 클래스들만 접근이 가능하다. 멤버(함수,변수) 접근 지정 private 디폴트 접근 지정 protected public 같은 패키지의 클래스 X O O O 다른 패키지의 클래스 X X X O 접근 가능 영역 클래스 내 동일 패키지 내 동일 패키지와 자식 클래스 모든 클래스