Java 코딩테스트에서 자주 쓰이는 함수 정리
1. 문자열 관련 메서드
- String.length() : 문자열의 길이를 반환합니다.
String s = "hello";
int len = s.length(); // 5
- String.charAt(int index) : 문자열에서 지정된 인덱스의 문자를 반환합니다.
char ch = s.charAt(0); // 'h'
- String.substring(int start, int end) : 문자열의 일부분을 잘라냅니다.
String sub = s.substring(1, 4); // "ell"
- String.contains(CharSequence sequence) : 특정 문자열이 포함되어 있는지 확인합니다.
boolean contains = s.contains("ell"); // true
- String.replace(CharSequence oldChar, CharSequence newChar) : 특정 문자를 다른 문자로 치환합니다.
String replaced = s.replace('l', 'x'); // "hexxo"
- String.split(String regex) : 주어진 정규식 기준으로 문자열을 분리하여 배열로 반환합니다.
String[] arr = s.split("l"); // ["he", "", "o"]
- String.join(CharSequence delimiter, CharSequence... elements) : 여러 문자열을 지정된 구분자로 연결합니다.
String joined = String.join("-", "2024", "12", "11"); // "2024-12-11"
2. 배열 관련 메서드
- Arrays.sort(int[] array) : 배열을 오름차순으로 정렬합니다.
int[] arr = {5, 3, 8, 1};
Arrays.sort(arr); // [1, 3, 5, 8]
- Arrays.binarySearch(int[] array, int key) : 정렬된 배열에서 이진 탐색을 통해 값을 찾습니다.
int[] arr = {1, 3, 5, 8};
int index = Arrays.binarySearch(arr, 5); // 2
- Arrays.toString(int[] array) : 배열을 문자열로 출력합니다.
int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr)); // [1, 2, 3]
- Arrays.copyOfRange(int[] array, int from, int to) : 배열의 일부를 복사하여 새로운 배열을 반환합니다.
int[] arr = {1, 2, 3, 4, 5};
int[] subArray = Arrays.copyOfRange(arr, 1, 4); // [2, 3, 4]
3. 리스트 관련 메서드
- List.add(E e) : 리스트에 요소를 추가합니다.
List list = new ArrayList<>();
list.add(1); // [1]
- List.get(int index) : 리스트에서 지정된 인덱스의 요소를 반환합니다.
int num = list.get(0); // 1
- List.remove(int index) : 리스트에서 지정된 인덱스의 요소를 삭제합니다.
list.remove(0); // [] (비어있는 리스트)
- List.size() : 리스트의 크기(요소 개수)를 반환합니다.
int size = list.size(); // 1
- Collections.sort(List list) : 리스트를 오름차순으로 정렬합니다.
List list = Arrays.asList(5, 3, 8, 1);
Collections.sort(list); // [1, 3, 5, 8]
- List.contains(Object o) : 리스트에 특정 요소가 있는지 확인합니다.
boolean contains = list.contains(3); // true
4. 맵(Map) 관련 메서드
- Map.put(K key, V value) : 맵에 키와 값을 추가합니다.
Map<String, Integer> map = new HashMap<>();
map.put("apple", 5); // {"apple"=5}
- Map.get(Object key) : 지정된 키에 대한 값을 반환합니다.
int value = map.get("apple"); // 5
- Map.containsKey(Object key) : 맵에 특정 키가 있는지 확인합니다.
boolean hasKey = map.containsKey("apple"); // true
- Map.keySet() : 맵의 모든 키를 반환하는 Set을 반환합니다.
Set keys = map.keySet(); // ["apple"]
- Map.values() : 맵의 모든 값을 반환하는 Collection을 반환합니다.
Collection values = map.values(); // [5]
5. 집합(Set) 관련 메서드
- Set.add(E e) : 집합에 요소를 추가합니다.
Set set = new HashSet<>();
set.add(1); // {1}
- Set.contains(Object o) : 집합에 특정 요소가 있는지 확인합니다.
boolean contains = set.contains(1); // true
- Set.remove(Object o) : 집합에서 특정 요소를 삭제합니다.
set.remove(1); // {}
- Set.size() : 집합의 크기를 반환합니다.
int size = set.size(); // 0
- Set.isEmpty() : 집합이 비어있는지 확인합니다.
boolean isEmpty = set.isEmpty(); // true
6. 정렬 관련 메서드
- Arrays.sort(int[] array) : 배열을 오름차순으로 정렬합니다.
int[] arr = {5, 3, 8, 1};
Arrays.sort(arr); // [1, 3, 5, 8]
- Collections.sort(List list) : 리스트를 오름차순으로 정렬합니다.
List list = Arrays.asList(5, 3, 8, 1);
Collections.sort(list); // [1, 3, 5, 8]
- Comparator를 이용한 사용자 정의 정렬:
List list = Arrays.asList("apple", "banana", "cherry");
Collections.sort(list, Comparator.reverseOrder()); // [cherry, banana, apple]
7. 수학 관련 메서드
- Math.max(a, b) : 두 수 중 더 큰 값을 반환합니다.
int max = Math.max(5, 10); // 10
- Math.min(a, b) : 두 수 중 더 작은 값을 반환합니다.
int min = Math.min(5, 10); // 5
- Math.pow(a, b) : a의 b승을 계산합니다.
double result = Math.pow(2, 3); // 8.0
- Math.sqrt(a) : a의 제곱근을 계산합니다.
double sqrt = Math.sqrt(16); // 4.0
- Math.random() : 0.0 (포함) ~ 1.0 (미포함) 사이의 난수를 반환합니다.
double random = Math.random(); // 0.23456789
8. 날짜/시간 관련 메서드 (Java 8 이상)
- LocalDate.now() : 현재 날짜를 반환합니다.
LocalDate today = LocalDate.now(); // 2024-12-11
- LocalTime.now() : 현재 시간을 반환합니다.
LocalTime time = LocalTime.now(); // 14:30:00.123
- LocalDateTime.now() : 현재 날짜와 시간을 반환합니다.
LocalDateTime now = LocalDateTime.now(); // 2024-12-11T14:30:00.123
- DateTimeFormatter.ofPattern(String pattern) : 날짜와 시간을 포맷하는 데 사용됩니다.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String formattedDate = today.format(formatter); // 2024/12/11