전체 글 (265) 썸네일형 리스트형 12. 상속1 상속이란 임의의 클래스에서 다른 객체로 자신의 정보를 넘겨주는 것을 의미한다. 상속의 장점은 코드의 재사용성을 높여 중복을 줄이고 이에 따른 유지, 보수가 용이해진다는 점이다. 상속을 사용하는 이유는 크게 두가지가 있다. 첫째는 이미 누군가가 완벽히 개발 해놓은 프로그램이 있다면 상속을 하여 빠른 시간내에 프로그램을 만든다는 것이다. 둘째는 다양한 객체타입을 상속을 통해서 하나의 객체타입으로 묶을 수 있다는 것이다. 상속을 할 때는 자식 클래스에서 생성자를 호출하면 항상 부모 클래스에 생성자부터 호출한다. 그 후 자식 클래스에 생성자를 호출한다. 참고로 모든 클래스는 자바클래스에서 제공하는 Object클래스를 상속받는다. package com.inheritance1; public class Parent .. 11. static static은 같은 클래스에서 나온 객체가 static이 붙은 키워드를 공유하는 문법이다. static 키워드를 붙은 요소는 객체마다 따로따로 생기지 않는다. static이 선언되지 않은 외부에서 static 키워드가 붙은 요소를 접근 시 객체를 생성하지 않고 클래스명을 이용하여 접근한다. staic의 장점은 객체생성과 상관없이 클래스에 존재하기 때문에 힙 영역에 메모리를 사용하지 않아서 메모리 효율성이 좋다는 것이다. static의 단점은 가비지 콜렉터로 삭제되지 않기 때문에 프로그램이 오랜시간 지속되면 메모리 관리가 되지 않는다는 점이다. static이 사용되는 대표적인 예는 상수를 지정할 때 사용하거나 프로젝트에서 팀원끼리 약속에 의해 정해진 변수 지정시에 사용한다.. (ex. 3.141592..... 백준1735 - 최단경로 https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 뜻이다. u와 v는 서로 다르며 w는 10 이하의 자연수이다. 서로 다른 두 www.acmicpc.net 우선 순위 큐를 이용하여 다익스트라를 구현하였다. 우선순위 큐에 first자리는 거리의 비용이 들어가고 second자리는 도착하는 곳이 들.. 백준6118 - 숨바꼭질 https://www.acmicpc.net/problem/6118 6118번: 숨바꼭질 문제 재서기는 수혀니와 교외 농장에서 숨바꼭질을 하고 있다. 농장에는 헛간이 많이 널려있고 재석이는 그 중에 하나에 숨어야 한다. 헛간의 개수는 N(2 b; //왕복이 가능하므로 v[a], v[b] 모두 갱신한다. v[a].push_back(b); v[b].push_back(a); } djikstra(1); //첫번째 마을에서 다익스트라 수행 //첫번째 마을부터 순회할 필요가 없으니까 두번째 마을부터 순회 for (int i = 2; i big) { big = d[i]; locate = i; } } //locate와 비용이 같은 곳을 찾는다. for (int i = 2; i 10. 패키지에 대한 이해 패키지란 자바에서 많은 파일을 효율적으로 관리하기 위해 등장한 구조이다. 클래스는 패키지로 관리한다. 우리는 여태까지 우리의 손으로 패키지를 만들어 패키지 안에 클래스를 넣었다. 패키지의 이름은 유일한 이름일수록 좋다. 큰 프로젝트를 할 때 패키지의 이름이 충돌이 나면 오류가 발생하기 때문이다. 보통 패키지의 이름은 도메인 주소를 역방향으로 마든다. 패키지명은 수정이 가능하다. 서로 다른 패키지에 내용을 불러올 때 반드시 import키워드를 이용하여 해당 패키지를 불러와야 한다. 다음은 패키지를 여러개 짜놓은 간단한 자바 프로그램 화면이다. package Package1; public class MyClass1 { public MyClass1() { System.out.println("MyClass1의 .. 백준5639 - 이진 검색 트리 https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 문제 이진 검색 트리는 다음과 같은 세 가지 조건을 만족하는 이진 트리이다. 노드의 왼쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 작다. 노드의 오른쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 크다. 왼쪽, 오른쪽 서브트리도 이진 검색 트리이다. 전위 순회 (루트-왼쪽-오른쪽)은 루트를 방문하고, 왼쪽 서브트리, 오른쪽 서브 트리를 순서대로 방문하면서 노드의 키를 출력한다. 후위 순회 (왼쪽-오른쪽-루트)는 왼쪽 서브트리, 오른쪽 서브트리, www.acmicpc.net 이진 검색 트리의 개념을 알고 있다면 풀 수 있는 문제다. 이진 검색 트리란 나 자신을 기준으로 왼쪽에 위치한 값은 모두 작은 값.. 백준2869 - 달팽이는 올라가고 싶다. https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽 www.acmicpc.net 코드는 간단하지만 생각하는데 오래걸렸다. 달팽이는 하루동안 A를 가고 B를 내려온다. V를 올라가야 하는데 총 며칠이 걸리.. 9. 클래스를 이용하여 병원 환자관리 프로그램 만들기 6, 7, 8강에서 배운 정보들로 병원 환자관리 프로그램을 만들어보자 고속도로 클래스는 총 2개의 클래스로 이루어져 있다. 첫번째 클래스는 Patient 클래스로 환자의 이름, 병명, 나이를 멤버변수로 갖는다. 멤버 함수로 각각의 getter와 setter를 가지고 있다. 두번째 클래스는 Manage 클래스로 환자의 수와, 환자의 명단, 의사의 수를 멤버 변수로 갖는다. 멤버 함수로 환자 명단 교체하는 기능과 환자대비 의사 수를 나타내는 기능, 원하는 환자의 정보를 보는 기능을 가진다. package Hospital; public class Patient { //private멤버로 멤버변수 정의 private String name; //환자 이름 private String disease; //환자 병명 .. 이전 1 ··· 26 27 28 29 30 31 32 ··· 34 다음