전체 글
Java Override & Overload
Overriding & Overloading Overriding 상위 클래스의 메서드와 이름과 용례(signature)가 같은 함수를 하위 클래스에 재정의하는 것을 말한다. 즉, 상속 관계에 있는 클래스 간에 같은 이름의 메서드를 정의하는 것을 말한다. 하위 클래스에 있는 애들마다 똑같은 메소드를 다르게 쓰고싶을테니까 class Parent { void display() { System.out.println("부모 클래스의 display() 메소드입니다."); } } class Child extends Parent { void display() { System.out.println("자식 클래스의 display() 메소드입니다."); } } /*class Child extends Parent { void..

Java Grammer (version. Jiwon)
직렬화(Serialization) : 객체를 파일에 저장하려면 객체가 가진 data들을 순차적인 data로 변환하는 과정 역직렬화(Deserialization) : 직렬화된 data를 읽어서 자신의 상태를 복구하는 것 변수의 초기화 멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지므로 초기화하지 않고 사용해도 되지만 지역 변수는 사용하기 전에 반드시 초기화를 해야한다. class InitTest { int x; int y = x; //문제 없음 void method() { int i; int j = i; // 컴파일 에러: 지역변수를 초기화하지 않고 사용함 } } String str1 = "asdf"; String str2 = "asdf"; String str3..
![[Error] 'Editor dose not contain a main type' 해결법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCJPog%2FbtrHpEPKcmk%2FIKKZWPOAuqtgsKzsr9WUD1%2Fimg.png)
[Error] 'Editor dose not contain a main type' 해결법
Helloworld2 프로젝트에서 바깥에 나와있는 Helloworld.java라는 파일이 소스파일이라고 프로젝트가 인식을 못하기 때문에 생기는 오류이다. 프로젝트를 만들 때 'Project layout'에서 아래를 선택하게 될 때 저런 문제가 생기는데 Configure default에 들어가보면 프로젝트를 만들 때 소스코드와 산출물 파일이 어디폴더에 저장될지 미리 정해놓은 프로젝트이기 때문에 맨 위의 사진처럼 바깥쪽에 소스코드를 빼놓으면 인식이 안된다. 따라서 이 프로젝트의 설정대로 src폴더 안에 소스코드를 넣어줘야 제대로 Run이 되며 bin폴더에 안정적으로 .class파일인 산출물이 나오게 된다.

JDK란? JRE, JVM에 대한 정리
● JDK(Java Development Kit) 자바 개발자 키트 개발자들이 Java로 프로그램을 만들 수 있또록 다양한 기능을 제공하는 Kit 컴파일러, JRE, JVM 등의 도구를 가지고 있다. ● 구성 javac - 자바 컴파일러(자바 소스파일 => 바이트코드) java - javac가 만든 클래스 파일 해석 및 실행 jdb - 자바 디버깅 툴 jre - 자바 런타임 환경, 자바 클래스 라이브러리/JVM/자바 클래스 로더 가지고 있음 JVM이 원활히 작동할 수 있게 환경을 맞춰주는 역할을 함 jvm - 자바 가상 머신, 자바가 실제로 동작하는 가상 환경, 다양한 os 및 기기에서도 실행 될 수 있도록 지원 * IDE는 .java 편집기와 Complie & Run 동작을 편하게 제공해주는 Tool ..
백준 16206 롤케이크(그리디)
https://www.acmicpc.net/problem/16206 16206번: 롤케이크 오늘은 재현이의 생일이다. 재현이는 친구 N명에게 롤케이크를 1개씩 선물로 받았다. 롤케이크의 길이는 A1, A2, ..., AN이다. 재현이는 길이가 10인 롤케이크만 먹는다. 따라서, 롤케이크를 잘라서 www.acmicpc.net 문제를 읽고 그리디적으로 푸는 것이라고 생각했다. 무조껀 10의 케이크만 먹을 수 있기 때문에 10으로 나눈 몫과 나머지에 집중을 하기 시작했다. 규칙을 찾아보니까 1. x에 대해 10으로 나눈 나머지가 있을 경우 x//10번 자르면 x//10개의 10길이 조각이 나온다. 2. x에 대해 10으로 나눈 나머지가 없을 경우 x//10 -1번 자르면 x//10개의 10길이 조각이 나온다...
백준 1068 트리(DFS)
https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net DFS를 이용하여 방문처리를 해준다음 풀어나가는 문제였다. 처음에 접근한 방식은 2중 그래프를 만들어서 각각 숫자에 누가 연결되어있는지 판단한 다음에 -1이 root node이기 때문에 -1부터 시작해서 DFS를 돌리고 len(graph[temp]) == 0일 때 자식노드가 없다는 것으로 판단하고 풀었는데 완전히 잘못된 생각이였다. 반례) 4 -1 0 1 2 2 처럼 모두 일직선으로 연결되어..
백준 3079 입국심사(이분탐색)
https://www.acmicpc.net/problem/3079 3079번: 입국심사 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ M ≤ 1,000,000,000) 다음 N개 줄에는 각 심사대에서 심사를 하는데 걸리는 시간인 Tk가 주어진다. (1 ≤ Tk ≤ 109) www.acmicpc.net 문제의 범위를 보고 이분탐색이라고 생각을 먼저 했다. 하지만 어떤값을 탐색할지에 대해 고민이 많았는데 결과적으로 우리가 구하려는 총 시간에 대해서 탐색한다. 일단 start, end값을 정해야하는데 0이나 1이라고 두고 end는 min(time) * m이 된다. why?) time에서 가장 작은 값의 입국심사대에 m명 모두 그 심사대만 이용가능한 경우이므로 min(time)*m 이 ..