목록전체 글 (323)
코드와이
Java & 객체지향 장점 JVM에서 동작 특정 운영체제에 종속되지 않는다. 객체지향 언어 캡슐화, 상속, 추상화, 다형성 등 비교적 이해하고 배우기 쉽다. 유지보수가 쉽다. GC를 통한 자동 메모리 관리 OpenJDK가 오픈소스 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 운영체제에 상관없이 멀티 스레드를 쉽게 구현 가능 단점 JVM에 의해 기계어로 번역되고 실행하는 과정을 거치기 때문에 C나 C++의 컴파일 단계에서 만들어지는 완전한 기계어보다는 속도가 느리다 불편한 예외처리 접근 제어자 public(+) : 어떤 클래스의 객체에서든 접근 가능 private(-) : 이 클래스에서 생성된 객체들만 접근 가능 protected(#) : 이 클래스와 동일 패키지..
Garbage Collector 가비지(Garbage)란? 정리되지 않은 메모리 유효하지 않은 메모리 주소 int[] arr = new int[1]; arr[0] = 3; arr = new int[] {1}; 위 코드에서 처음에 할당한 3을 가비지라고 부른다. 앞으로 사용하지 않고 메모리를 가지고 있는 객체 또한 가비지라고 부른다. 메모리가 부족할 때 이런 가비지들을 메모리에서 해제시켜 다른 용도로 사용할 수 있게끔 해주는 프로그램 C++과의 차이점 C++ : 사용하지 않을 객체의 메모리를 직접 해제 Java : GC가 자동으로 잡아줌 Stop The World GC 실행을 위해 JVM이 애플리케이션 실행을 멈추는 것 GC가 실행될 땐 GC를 실행하기 위한 쓰레드를 제외한 모든 쓰레드가 멈추고, GC 작..
문제링크 https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class 저울 { static int n, arr[]; public sta..
문제링크 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 이중탐색 1 2 3 2 4 6 3 6 9 low = 1, high = 7 이라면 mid = 4 가 되고 배열에서 4보다 작은 수는 cnt = 6(3 + 2 + 1)이 된다. 이중탐색이 끝날 때까지 cnt를 최신화한다. package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOExceptio..

문제링크 https://www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class 트리의_순회 { static int n, in[], post[], pre[], idx; public static void ma..
문제링크 https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class 후위_표기식 { public static void main(String[] args) throws IOExc..
문제링크 https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.u..
문제링크 https://www.acmicpc.net/problem/2665 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1 ≤ n ≤ 50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net package acmicpc.Gold4; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class 미로만들기 { static int n, map[][], dist[..