Dazzling 개발 노트

[JAVA] 코딩테스트 주요 문법 본문

Develop/Java

[JAVA] 코딩테스트 주요 문법

dj._.dazzling 2024. 3. 29. 09:30

주요 키워드

extends

  • 클래스 상속 시 사용
  • 클래스 상속에만 사용, 인터페이스 상속 시 미사용

implements

  • 인터페이스 구현 시 사용
  • 클래스가 인터페이스의 모든 추상 메서드를 구현하도록 함
  • 여러 인터페이스 나열 가능
  • 클래스가 인터페이스를 구현할 때 사용, 클래스 상속 시 미사용

throws

  • 메서드나 생성자에서 발생할 수 있는 예외 선언 시 사용

라이브러리

import java.util.*;
import java.io.*;

Arrays

int arr[] = {10, 8,11, 2, 3, 0};

// 오름차순 정렬
Arrays.sort(arr);

// 내림차순 정렬
Arrays.sort(arr, Collections.reverseIrder());

// 일부만 정렬 : 0~4만 정렬
Arrays.sort(arr, 0, 4);

// 배열을 리스트로 변환
List list = Arrays.asList(arr);

// 배열의 특정 범위 자르기
int tmp[] = Arrays.copyOfRange(arr, 0, 3);

ArrayList

ArrayList<String> list = new ArrayList<>();

list.add("java");
list.add(0, "java"); // 0 인덱스에 java 삽입

list.set(1, "C++");

list.remove(1);

list.contains("java"); // true, false로 반환
list.indexOf("java"); // 존재 시 인덱스 반환

for(int i = 0; i < list.size(); i++) {
	list.get(i).intValue();
}

Iterator it = list.iterator();

// 인덱스 오름차순 순회
while (it.hasNext()) {
	...
}

// 인덱스 내림차순 순회
while (it.hasPrevious()) {
	...
}

Sort

// 1차원 배열 오름차순
Arrays.sort(arr, (o1, o2) -> o1 - o2);

// 1차원 배열 내림차순
Arrays.sort(arr, (o1, o2) -> o2 - o1);

// 2차원 배열 오름차순
Arrays.sort(arr, (o1, o2) -> {
	if (o1[0] == o2[0])
		return o1[1] - o2[1];
	else 
		return o1[0] - o2[0];
});

// 2차원 배열 내림차순
Arrays.sort(arr, (o1,o2) -> {
	if (o1[0] == o2[0])
		return o2[1] - o1[1];
	else 
		return o2[0] - o1[0];
});

String

String str = "Hello World";

// 문자열 자르기
str.split(" ");

// 문자열 자르기 : 0 ~ 5까지 자르기
str.substring(0,5);

// i번째 글자
str.charAt(i);

// 문자열을 char 배열로 변환
char[] strArr = str.toCharArray();

// 문자열을 String 배열로 변환
String[] strArr = str.split("");

// 대문자로 변경
str.toUpperCase();

// 소문자로 변경
str.toLowerCase();

// A가 B로 시작하는지 확인
A.startsWith(B)

// A가 B로 종료하는지 확인
A.endWith(B)

// A가 B를 포함하는지 확인
A.contains(B)

HashMap

// 선언
HashMap<Integer, String> map = new HashMap<>();

// key value 추가
map.put(11, "java");

// map 내 key로 값 조회
map.get(11);

// map 내 key 존재 여부 확인
map.containsKey(0);

// 특정 키가 없으면 기본값 반환
map.getOrDefault(10, 0); // 10이 없으면 0 반환

// map 순회
for (int key : map.keySet()){
	map.get(key);
}

Queue

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

q.add(1);

q.poll();

q.clear();

q.isEmpty();

PriorityQueue

PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
PriorityQueue<Integer> pq = PriorityQueue<Integer>(Collections.reverseOrder());

pq.add(1);

pq.poll();

pq.peek();

pq.remove();

Math

Math.max(100, 500); //500

Math.min(100, 500); //100

// 반올림
Math.round(10.0); //10
Math.round(10.4); //10
Math.round(10.6); //11

// 올림
Math.ceil(10.0); //10
Math.ceil(10.4); //11.0
Math.ceil(10.6); //11.0

// 내림
Math.floor(10.0); //10
Math.floor(10.4); //10.0
Math.floor(10.6); //10.0

// 절대값
Math.abs(10);  //10
Math.abs(-10); //10

// 제곱
Math.pow(5,2);  //25
Math.pow(2,10); //1024

// 제곱근
Math.sqrt(4); //2