자바 코딩테스트 문법 정리

Updated:

개요

모레 4월 3일에 카카오 커머스 코딩테스트를 응시하는데, 언어를 자바만 선택할 수 있다는 사실을 오늘 알았다.

나는 C++만을 사용해서 코딩테스트준비를 하고있었는데, 갑자기 JAVA라는 사실에 머리가 멍했지만
그렇다고 손놓고 있을 수는 없는 노릇이기 때문에 급하게 코테용 문법만이라도 정리하면서 벼락치기로 준비하려 한다.

새로 알게된 순서대로 계속해서 정리할 예정이다.

문법

HashMap

Map<String, Integer> map = new HashMap<String, Integer>();

map.put("String1", Integer1); // 삽입
map.containsKey("String1"); // Key포함여부 확인
map.get("String1") // 조회

// for-each문을 통해서 쉽게 모든 Key에 접근하기
for (String key : map.keySet()) {
  map.get(key);
}

ArrayList

ArrayList<Integer> arrayList = new ArrayList<>();

arrayList.add(10); // 삽입
arrayList.get(0); // 인덱스로 조회

Queue

Queue<Integer> que = new LinkedList<>();

que.isEmpty(); // 큐가 비어있는가?
que.add(3); // 삽입, 저장공간 부족하면 예외발생
que.offer(3); // 삽입, 저장공간 부족하면 false 반환
que.peek(); // 객체를 삭제 없이 읽기만 함
que.poll(); // 객체를 꺼내고 반환

Stack

Stack<Integer> stack = new LinkedList<>();

stack.empty(); // 스택이 비어있는가?
stack.push(3); // 삽입
stack.peek(); // 객체를 삭제 없이 읽기만 함
stack.pop(); // 객체를 꺼내고 반환

우선순위 큐 및 정렬

// Pair 선언 및 비교함수
class Pair implements Comparable<Pair> {
    int first, second;
    
    Pair(int f, int s) {
        this.first = f;
        this.second = s;
    }
    
    public int compareTo(Pair p) {
        if (this.first > p.first) return -1;
        else return 1;
    }
}

PriorityQueue<Pair> que = new PriorityQueue<Pair>(); // 선언

배열 정렬

String[] stringArray = new String[8];
Arrays.sort(stringArray); // 오름차순

Integer[] integerArray = new Integer[8];
Arrays.sort(integerArray, Comparator.reverseOrder()); // 내림차순, Wrapper클래스 사용할 것

// 사용자 지정 정렬
class CustomComparator implements Comparator<String> {
  @Override
  public int compare(String o1, String o2) {
    return o2.compareTo(o1);
  }
}

String[] stringArray = new String[8];
Arrays.sort(stringArray, CustomComparator());

형변환

// String to Int
String string = "123";
int num = Integer.parseInt(string);

// Int to String
Int num = 123;
String string = Integer.toString(num);

문자열처리

// SubString
String.subsrting(start, end); // start부터 end-1까지 자르기

// 특정 문자이후로
String str = "ABC@practice.com";
String result = str.substring(str.lastIndexOf(@) + 1); // result = "practice.com"

// 부분 자르기
String str = "ABC.DEF@practice.com";
int idx = str.IndexOf("practice");
String result = str.substring(idx, idx + str.substring(idx).indexOf(".")); // result = "practice"

// --------------------------------------------------------------------------------------------------

// Split
String.split(" ");

// 공백으로 나누어 저장
String str = "가 나다 라마바 사아 자차 카타파하"
String[] arr = str.split(" ");
/* 결과
arr[0] = "가"
arr[1] = "나다"
arr[2] = "라마바"
arr[3] = "사아"
arr[4] = "자차"
arr[5] = "카타파하"
*/

Leave a comment