제네릭(Generic) 제네릭은 필요한 데이터 타입을 클래스 내부가 아닌 외부에서 사용자에 의해 지정하는 것을 말합니다. 즉, 특정 타입을 미리 지정하는 것이 아니라 필요할 때 지정할 수 있도록 해주는 일반적인 타입입니다. 제네릭 타입을 사용하면 컴파일 단계에서 미리 강한 타입 체크가 가능하기 때문에 잘못된 타입을 사용하여 발생하는 에러를 사전에 방지할 수 있습니다. 또한 제네릭 타입을 사용하면 타입을 국한하기 때문에 요소를 찾아올 때 타입 변환을 할 필요가 없어 프로그램 성능이 향상됩니다. ArrayList list = new ArrayList(); //제네릭을 사용하지 않을 경우 list.add("test"); String temp = (String) list.get(0); //타입변환이 필요함 Ar..
https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 숫자 a, b가 공백으로 구분되어 입력되기 때문에 먼저 공백을 기준으로 두 수를 구분하여 String[]에 저장합니다. 그런 다음, 하나씩 꺼내서 StringBuilder(또는 StringBuffer)로 변경하고 StringBuilder(또는 StringBuffer)가 제공하는 reverse() 메소드를 사용하여 문자열을 뒤집고 이를 다시 String으로 변경합니다. 이렇게 뒤집힌 문자열을 int 타입으로 전..
I/O란? Input과 Output의 약자로 입출력을 의미합니다. 간단한 예를 보면 키보드로 텍스트를 입력하고, 모니터로 입력한 텍스트를 출력하는 것을 말합니다. 스트림 (Stream) 기반 I/O 자바에서는 파일이나 콘솔 입출력을 직접 다루지 않고 스트림이라는 흐름을 사용합니다. 스트림은 실제의 입력이나 출력이 표현되는 데이터의 이상화된 흐름을 의미합니다. 즉, 운영체제에의해 생성되는 가상의 연결고리, 중간 매개체를 의미합니다. 스트림은 한 방향으로만 통신할 수 있으며, 입력과 출력을 동시에 처리할 수는 없습니다. 따라서 스트림은 사용 목적에 따라 입력 스트림과 출력 스트림으로 구분됩니다. 자바에서는 java.io 패키지를 통해 InputStream과 OutputStream을 각각 제공합니다. Inpu..
Annotation Java 5부터 추가된 기능으로 소스 코드에 메타 데이터를 추가하는 것입니다. 클래스, 메소드, 변수 등에 붙여서 사용하게 됩니다. 애노테이션 정의하는 방법은 다음과 같습니다. public @interface DoRepeat100 {} Interface를 정의한 뒤 interface 키워드 앞에 @를 붙입니다. 위 애노테이션은 같은 작업을 100번 반복하는 것을 의미합니다. 위에서 생성한 애노테이션을 부여하여 메소드를 구현하였습니다. public class Hello { @DoRepeat100 public void hello() { System.out.println("Helllo"); } } hello라는 메소드는 애노테이션을 부여받았습니다. 이제 이 애노테이션을 처리하는 클래스를 살..
www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net 주어진 문장에서 단어를 구하는 문제로 앞, 뒤 공백이 있을 수 있으니 공백을 제거하고 중간 공백을 기준으로 문장을 쪼개서 나온 단어 배열의 크기를 반환하면 해결할 수 있는 문제입니다. 단, 빈 문자(" ")가 들어오는 경우 ""이 배열에 저장되어 1개의 단어가 있는 것으로 판단되기 때문에 이 경우를 찾아 0을 반환할 수 있도록 하였습니다. 자바 코드는 다음과 같습니다. import java.io.Buffer..
- Total
- Today
- Yesterday
- 순열
- EC2
- Algorithm
- SWIFT
- Combination
- CodePipeline
- Dynamic Programming
- java
- 에라토스테네스의 체
- CodeCommit
- AWS
- sort
- 수학
- DFS
- array
- 소수
- map
- Baekjoon
- spring
- BFS
- search
- programmers
- 프로그래머스
- string
- CodeDeploy
- 조합
- permutation
- ionic
- ECR
- cloudfront
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |