목록분류 전체보기 (79)
영권's
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d1MPZz/btq64wNcAcm/ykZQr45onCEmjI3TqI3y10/img.png)
https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 이 문제는 주어진 구간에 해당하는 소수를 찾는 문제인데 일반적으로 반복문을 이용해서 푼 후 에라토스테네스의 체라는 알고리즘을 알게 되어 2가지 방법으로 풀어 보았다. 소수(Prime Number)는 1보다 큰 자연수 중 1보다 큰 자연수 중 1과 자기 자신만을 약수로 갖는 자연수이다. 즉 소수의 약수는 2개만을 가지며 그 중 하나는 반드시 1이며, 나머지 자기 자신만을 약수로 갖기 때문에 1보다 크고 자기 자신의 수보다 작은 약..
목표 자바의 람다식에 대해 학습하세요. 학습할 것 (필수) 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다식(Lambda expression)이란? 람다식은 간단히 말해서 메서드를 하나의 '식(expression)'으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수(anonymous function)이라고도 한다. 예) int arr[] = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random()*5)+1); 여기서 (i) -> (int)(Math.random()*5)+1) 이 바로 람다식이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nv7lK/btq6L4WzT9m/RfgR2WxlRW96CaBGCdqxsk/img.png)
목표 자바의 제네릭에 대해 학습하세요. 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭이란? 데이터 타입을 일반화 하는 것을 의미한다. 제네릭은 클래스나 메서드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 이렇게 컴파일 시 type check를 하면 장점이 있다. 클래스나 메서드 내부에서 사용되는 객체 타입의 안정성을 높일 수 있다. 반환 값에 대한 타입 변환 검사에 들어가는 노력을 줄일 수 있다. Java5 이전에서는 여러 타입을 사용하는 대부분의 클래스나 메서드에서 인수나 반환값으로 Object타입을 사용했었다. 하지만 이 경우 반환된 Object 객체를 다시 원하는 타입으로 타입을 변환해야하고, 이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b7tbDw/btq6rwlYKTK/RpmNhfkkJs8Uu5yNXsJ1IK/img.png)
목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 I/O 입출력 입출력이란? 입출력(I/O)란 Input과 Output의 약자로 입력과 출력, 간단히 입출력이라 한다. 입출력은 컴퓨터 내부 또는 외부 장치와 프로그램간의 데이터를 주고 받는 것을 말한다. 키보드로부터 데이터를 입력 System.out.println()을 이용해 화면에 출력 스트림(stream) 자바에서 어느 한 쪽에서 다른 쪽으로 데이터를 전달하려면, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ACLqe/btq57HHuX4q/WAnnNJY6xWHgDetPO2V1WK/img.png)
목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 어노테이션(Annotation) 사전적 의미로 주석을 의미하며 프로그램에 대한 데이터를 제공하는 메타데이터의 한 형태 입니다. 어노테이션과 일반적인 주석은 뭐가 다른걸까? - 어노테이션의 역할도 주석과 크게 다르지 않는다. - 일반주석과 큰 차이점은 코드를 작성할 수 있다는 것이 다르다. - 코드를 작성할 수 있다는 뜻은 어노테이션으로 뭔가를 할 수 있다는 뜻이 된다. - 어노테이션도 enum과 마찬가지로 1.5에 등장했다고 한다. 메타 데이터(metadata) : 데이터에 대한 데이터. 즉, 다른 데이터를 설명해주는 데이터입니다. 애노테이션의..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c2fLhu/btqY7ovbRYs/Kkp23YwyA4ml2ksvPCrTQk/img.png)
목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum : 열거형이라고 불리며, 서로 연관된 상수들의 집합이라고 불린다. 상수란? 변하지 않는 값을 의미 합니다. 자바에서는 final static 키워드가 붙은 값을 상수라고 합니다 열거형은 JDK 1.5에서 추가 되었으며 열거형이 갖는 값뿐만 아니라 타입까지 관리하기 때문에 논리적인 오류를 줄일 수 있다. 자바 외 언어들에서는 타입이 달라도 값이 같으면 조건식 결과가 참(true)인 경우가 있으나, 자바의 열거형은 '타입에 안전한 열거형(typesafe enum)' 이라서 실제 값이 같아도, 타입이 다르면 컴파일..