코딩 테스트

코딩 테스트를 준비하면서 알아두면 좋을 메서드

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번째 비트 끄기