Intro::
1. 입출력 처리
•
빠른 입력
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine(); // 한 줄 읽기
StringTokenizer st = new StringTokenizer(line);
int a = Integer.parseInt(st.nextToken());
Java
복사
•
빠른 출력
StringBuilder sb = new StringBuilder();
sb.append(result).append('\n');
// 반복 후
System.out.print(sb);
Java
복사
2. 문자열(String)
•
length() : 문자열 길이
•
charAt(i) : i번째 문자
•
substring(begin, end) : 부분 문자열
•
indexOf(str) / lastIndexOf(str) : 검색 위치
•
split(regex) : 토큰 분리
•
replace(oldChar, newChar) / replaceAll(regex, newStr)
•
equals() / equalsIgnoreCase() : 비교
•
toCharArray() : 문자 배열 변환
•
뒤집기
String rev = new StringBuilder(s).reverse().toString();
Java
복사
3. 배열(Arrays)
•
Arrays.sort(arr) : 오름차순 정렬
•
Arrays.binarySearch(arr, key) : 이분 탐색
•
Arrays.fill(arr, value) : 초기화
•
Arrays.equals(a, b) : 비교
•
Arrays.copyOf(src, newLen)
•
System.arraycopy(src, si, dst, di, len)
•
Arrays.toString(arr) : 디버깅용 출력
int[] nums = {5, 2, 9, 1, 3};
Arrays.sort(nums);
System.out.println(Arrays.toString(nums)); // [1, 2, 3, 5, 9]
Integer[] boxed = Arrays.stream(nums).boxed().toArray(Integer[]::new);
// 람다를 사용한 내림차순 정렬
Arrays.sort(boxed, (a, b) -> b - a);
System.out.println(Arrays.toString(boxed)); // [9, 5, 3, 2, 1]
String[] names = {"홍길동", "김철수", "이영희", "박민수"};
// 문자열 길이 오름차순
Arrays.sort(names, (a, b) -> a.length() - b.length());
System.out.println(Arrays.toString(names)); // [김철수, 이영희, 박민수, 홍길동]
// 사전 역순
Arrays.sort(names, (a, b) -> b.compareTo(a));
System.out.println(Arrays.toString(names)); // [홍길동, 박민수, 이영희, 김철수]
Java
복사
4. 수학 연산(Math)
•
Math.max(a, b) / Math.min(a, b)
•
Math.abs(x)
•
Math.pow(a, b) / Math.sqrt(x)
•
Math.ceil(x) / Math.floor(x) / Math.round(x)
•
BigInteger.gcd() : 최대공약수
•
BigInteger.modPow() : 큰 지수 연산
5. 컬렉션(Collections)
•
리스트 / 집합 / 맵
List<Integer> list = new ArrayList<>();
Set<String> set = new HashSet<>();
Map<String, Integer> map = new HashMap<>();
Java
복사
•
정렬 및 변환
Collections.sort(list);
Collections.reverse(list);
Collections.shuffle(list);
Java
복사
•
탐색 / 빈도
Collections.binarySearch(list, key);
Collections.frequency(list, key);
Java
복사
6. 자료구조 활용
•
우선순위 큐
PriorityQueue<Integer> pq = new PriorityQueue<>(); // 최소 힙
PriorityQueue<Integer> maxPq = new PriorityQueue<>(Comparator.reverseOrder());
Java
복사
•
덱(Deque)
Deque<Integer> dq = new ArrayDeque<>();
dq.offerFirst(x);
dq.offerLast(x);
dq.pollFirst();
dq.pollLast();
Java
복사
•
링크드 리스트 (큐/스택 대체)
LinkedList<Integer> queue = new LinkedList<>();
queue.offer(x);
queue.poll();
Java
복사
7. 유틸리티 클래스
•
문자 분류
Character.isDigit(c);
Character.isLetter(c);
Java
복사
•
형 변환 / 파싱
Integer.parseInt(str);
Long.parseLong(str);
Double.parseDouble(str);
Java
복사
•
포맷팅
String.format("%d %s", num, str);
Java
복사
•
토큰 분리
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
Java
복사
•
이진수 변환
Integer.toBinaryString(5);// "101"
Java
복사