코딩 테스트
코딩 테스트를 준비하면서 알아두면 좋을 메서드
duhwan98
2025. 4. 3. 16:36
1️⃣ 배열 관련 메서드
🔹 배열 정렬 - Arrays.sort()
int[] arr = {5, 2, 8, 1, 3};
Arrays.sort(arr); // 오름차순 정렬
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 5, 8]
🔹 내림차순 정렬 - Collections.reverseOrder()
Integer[] arr = {5, 2, 8, 1, 3};
Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr)); // [8, 5, 3, 2, 1]
🔹 배열 복사 - Arrays.copyOf()
int[] arr = {1, 2, 3, 4, 5};
int[] copyArr = Arrays.copyOf(arr, arr.length); // 전체 복사
int[] partialArr = Arrays.copyOfRange(arr, 1, 4); // 1~3번 인덱스 복사
2️⃣ 리스트 관련 메서드
🔹 리스트 정렬 - Collections.sort()
List<Integer> list = new ArrayList<>(Arrays.asList(5, 2, 8, 1, 3));
Collections.sort(list);
System.out.println(list); // [1, 2, 3, 5, 8]
🔹 내림차순 정렬 - Collections.reverseOrder()
Collections.sort(list, Collections.reverseOrder());
System.out.println(list); // [8, 5, 3, 2, 1]
🔹 리스트 변환 - Arrays.asList()
String[] arr = {"apple", "banana", "cherry"};
List<String> list = new ArrayList<>(Arrays.asList(arr));
🔹 리스트 -> 배열 변환 toArray()
List<String> list = Arrays.asList("A", "B", "C");
String[] arr = list.toArray(new String[0]);
3️⃣ 문자열 관련 메서드
🔹 문자열 분할 - split()
String str = "apple,banana,grape";
String[] arr = str.split(",");
🔹 문자열 뒤집기 - StringBuilder.reverse()
String str = "hello";
String reversed = new StringBuilder(str).reverse().toString(); // "olleh"
🔹 문자 정렬(사전순) - toCharArray()
char[] chars = "dcba".toCharArray();
Arrays.sort(chars);
String sorted = new String(chars); // "abcd"
4️⃣ Map & Set 관련 메서드
🔹 빈도수 계산 (HashMap 활용)
String str = "banana";
Map<Character, Integer> map = new HashMap<>();
for (char c : str.toCharArray()) {
map.put(c, map.getOrDefault(c, 0) + 1);
}
System.out.println(map); // {b=1, a=3, n=2}
🔹 중복 제거 (HashSet)
int[] arr = {1, 2, 2, 3, 4, 4, 5};
Set<Integer> set = new HashSet<>();
for (int num : arr) {
set.add(num);
}
System.out.println(set); // [1, 2, 3, 4, 5]
5️⃣ 우선순위 큐 (Heap)
🔹 최소 힙 (PriorityQueue)
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
minHeap.add(3);
minHeap.add(1);
minHeap.add(5);
System.out.println(minHeap.poll()); // 1 (최소값부터 제거)
🔹 최대 힙 (PriorityQueue + Comparator)
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
maxHeap.add(3);
maxHeap.add(1);
maxHeap.add(5);
System.out.println(maxHeap.poll()); // 5 (최대값부터 제거)
6️⃣ 수학 관련 메서드
🔹 최대공약수 (GCD) & 최소공배수 (LCM)
int gcd = gcd(12, 18); // 6
int lcm = (12 * 18) / gcd; // 36
public static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
🔹 거듭제곱 - Math.pow()
double result = Math.pow(2, 3); // 2^3 = 8.0
🔹 절댓값 - Math.sqrt()
double a = 16;
Math.sqrt(a); // 4.0
🔹 절댓값 - Math.abs()
int absValue = Math.abs(-10); // 10
🔹 랜덤 값 생성 - Math.random()
int randomNum = (int) (Math.random() * 10) + 1; // 1~10 사이 랜덤 값
7️⃣ 비트 연산
🔹 비트마스킹 활용 (특정 비트 확인)
int num = 5; // 0101 (2진수)
boolean isSet = (num & (1 << 2)) != 0; // 3번째 비트가 켜져 있는지 확인
🔹 특정 비트 켜기
num |= (1 << 1); // 2번째 비트 켜기
🔹 특정 비트 끄기
num &= ~(1 << 1); // 2번째 비트 끄기