본문 바로가기

Java

(15)
#8 - 9020번 골드바흐의 추측 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰 짝수..
JAVA 4주차 - 마무리 예외처리 : 프로그램에 문제가 있는 것을 말하며, 예외로 인해 시스템 동작이 멈추는 것. try ~ catch fianlly throws 입력과 출력 FileInputStream / FileOutputStream : read(); // 1byte씩 읽음 read(byte[]); // []byte씩 읽음 write(byte[] b); // 전체 쓰기 write(byte[], int off, int len); // off - 시작, len - 길이 DataInputStream / DataOutputStream : DataInputStream -> InputStream / DataOutputStream -> OutputStream BufferedReader / BufferedWriter : BufferedRe..
#7 - 17298번 오큰수 문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,..
Java 4주차 - 상속 및 클래스 (2) 추상 클래스 : 클래스의 공통된 부분을 뽑아서 별도의 추상 클래스로 만들어 놓고 상속해서 사용. : 멤버 변수 가짐. extends로 상속. 일반 메서드도 가능. 생성자도 있음. abstract 메서드를 가지며, 상속한 클래스에서 꼭 구현해야 함. 인터페이스 vs 추상 클래스 공통 : 추상 메서드를 가짐. 객체 생성 불가, 자료형으로 사용됨. 차이 : 인터페이스 - 상수, 추상 메서드만 가짐. 추상 메서드를 구현만 하도록 함. 다형성 지원. 추상 클래스 - 클래스가 가지는 모든 속성과 기능을 가짐. 추상 메스드 구현 및 상속의 기능을 가짐. 단일 상속만 지원. 람다식 : 익명 함수를 이용해서 익명 객체를 생성한다. 문자열 클래스 String 객체와 메모리 StringBuffer, StringBuilder..
#6 - 1712번 손익분기점 문제 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다. A, B, C가 주어졌..
#5 - 1152번 단어의 개수 문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 출력 첫째 줄에 단어의 개수를 출력한다.
Java 3주차 - 상속 및 클래스 (1) 상속 자식 클래스는 부모 클래스의 속성과 기능을 이용할 수 있다 extends 단일 상속만 가능 private 속성과 메서드는 사용 불가 메서드 오버라이드: 부모 클래스의 기능을 자식 클래스에서 재정의해 사용한다 클래스도 자료형임 (arr) object = 최상위 클래스 : 모든 클래스는 오브젝트를 상속하고 있다 super = 상위 클래스 호출한다 내부 클래스와 익명 클래스 내부 클래스(inner class): 클래스 안에 또 다른 클래스 선언. 익명 클래스(anonymous class): 이름이 없는 클래스. 메서드 재정의. 인터페이스나 추상 클래스에서 주로 이용. 인터페이스 객체 생성 불가. 클래스에서 구현해야 하는 작업 명세서. 객체가 다양한 자료형을 가질 수 있다.
Java 3주차 - 객체 (2) 객체와 메모리 객체는 동적으로 메모리에 생성. 레퍼런스가 사라지면 GC(Garbage Collector)에 의해 제거됨. ChildClass child = new ChildClass(); 생성한 객체의 주소를 가지는 변수: class가 같다고 해서 같은 래퍼런스를 가지지 않음. 레퍼런스에 null이 저장되면 연결이 끊김: 연결이 끊기는 거지 레퍼런스가 사라지는 건 아님. 생성자와 소멸자 그리고 this 키워드 디폴트 생성자: 객체가 생성될 때 가장 먼저 호출되는 생성자. 개발자가 명시하지 않아도 컴파일 시 자동 생성. 소멸자: 객체가 GC에 의해 메모리에서 제거될 때 finalize() 메서드가 호출된다. this: 자신을 가리킴. 패키지와 static 패키지: 클래스를 폴더 형식으로 관리하는 것 최상단..