코딩 테스트

코딩테스트 준비

우루쾅 2024. 2. 11. 14:51
728x90
반응형
SMALL

코딩테스트 공부방법

 

String 클래스 특징

  += 또는 + 연산을 지양해야한다.

아래와 같은 연산을 한다면 한 문자열에 1234 가 합쳐지는 문자열이 되는 것이 아닌

+ 연산을 할때마다 새로운 객체를 만들어서 연산을 수행하기 때문에 

아래의 코드의 경우 1, 12, 123, 1234 가 각각 String Constant Pool 에 새로운 리터럴로 저장되며

아무도 참조하지 않은 리터럴은 GC(Garbage Collection)가 회수해가는 과정을 거치게 되고 이러한 과정은 성능 저하의 원인이 된다.

String str = "1";
str += "2";
str += "3";
str += "4";

 

최대공약수 계산

// 최대공약수 계산
public int gcd(int a, int b) {
    while (b != 0) {
        int r = a % b;
        a = b;
        b = r;
    }
    return a;
}

 

ArrayList

  ArrayList 에 값 추가, 추출, 삭제할 때

List<Integer> answer = new ArrayList<>();

// List 에 값 추가
answer.add(1);

// List 에 값 추출 => get(List 순번)
answer.get(0);

// List 에 값 삭제 => remove(List 순번)
answer.remove(2);

 

Arrays.asList

▶ 배열을 List 에 담아야 할 때 사용하는 메서드, 배열의 순번을 알아야 할 때 주로 사용 가능하다.

String[] arr = {"code", "date", "maximum", "remain"};
List<String> list = Arrays.asList(arr);

 

Arrays.sort();

▶ 배열을 정렬한다.

String[] arr = new String[];
// 오름차순 정렬
Arrays.sort(arr);

// 내림차순 정렬
Arrays.sort(arr, Comparator.reverseOrder());

 

toArray(new String[0])

▶ ArrayList 를 배열로 재 선언한다.

List<String> list = new ArrayList<>();
// ArrayList를 배열로 재 선언한다.
String[] arr1 = list.toArray(new String[0]);
String[] arr2 = list.toArray(String[]::new);

 

indexOf("")

List 의 특정 값의 순번을 확인하려고 할 때 사용하는 메서드, int 형식으로 값이 떨어진다.

// 순번을 뽑고, 없으면 -1 출력
int index = list.indexOf("maximum");

 

 

Map 데이터 전부 가져오는 방법

for( String key : map.keySet() ){
    System.out.println("키 : " + key + ", 값 : " + map.get(key));
}

 

Map 값 조회 후 없으면 디폴트값 설정

▶ getOrDefault("비교값", "default 값") ← map 에서 key 를 대상으로 값을 조회 후 없으면 default 값 출력

// map 에서 key 를 대상으로 값을 조회 후 없으면 default 값 출력
map.put(stages[i], map.getOrDefault(stages[i], 0)+1);

 

toString(), String.valueOf() 의 차이

// valueOf 는 데이터가 null 일 때 "null" 이라는 문자열로 처리
String sk = String.valueOf(skip);

// toString 은 데이터가 null 일 때 Null PointerException(NPE)을 발생시킴
String sk = skip.toString();

 

Arrays.toString

배열의 모든 내용을 그대로 출력한다.

ex) System.out.println(checkBurger) => [1, 3, 2, 1, 2, 1, 3, 1, 2]

int[] arr = new int[10];
// 배열의 내용 출력하기
String checkBurger = Arrays.toString(arr);

 

배열 자르기

▶ Arrays.copyOfRange(배열, 여기에서부터, 여기까지) 잘라서 사용한다.

String[] str_list = new String[10];
// 해당 배열을 0부터 5까지 배열로 자른다
Arrays.copyOfRange(str_list, 0, 5);

 

배열 늘리기 

▶ Arrays.copyOf(배열, 길이) 잘라서 사용한다.

String[] str_list = new String[10];
// 해당 배열을 5까지 늘린다.
Arrays.copyOf(str_list, 5);

 

Collection.sort()

▶ Collection.sort(정렬할 리스트); || Collection.sort(정렬할 리스트, Collections.reverseOrder());

List<String> common = new ArrayList<>();

// 기본 기준 정렬
Collections.sort(common);
// 반대로 정렬
Collections.sort(common, Collections.reverseOrder());

 

 

 

출처

- Barbera https://barbera.tistory.com/45

- 오월의 코딩일지 - https://programmer-may.tistory.com/154

 

728x90
반응형
LIST