본문 바로가기
Develop/Java

[JAVA] 코딩테스트 자주 사용하는 함수

by 루시킴 2021. 10. 16.

int[] arr = {1,8,6}

static int [] dx = {1, -1 , 0, 0};
static int [] dy = {0, 0, 1, -1};

ArrayList<Integer>[][] a = new ArrayList[N+1][N+1] //2차원 ArrayList

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

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

Arrays.sort(int[][] jobs, ((o1,o2)->o1[0]-o2[0]) // 0번째 원소를 기준 오름차순

Arrays.sort(int[][] jobs, ((o1,o2)->o2[0]-o1[0]) // 0번째 원소를 기준 내림차순

Arrays.copyOfRange(arr,2,4) // arr배열의 2번 인덱스부터 3번인덱스까지 복사

 

 

String s = String.ValueOf(5432) // 정수 -> 문자열

Integer i = Integer.parseInt("5432") // 문자열->정수

str.charAt(5) // str의 5번째 인덱스 문자 추출

str.startWith(a) // a로 시작하면 True, 아니면 False

str.endWith(a) // a로 끝나면 True, 아니면 False

str.equals("t") // str과 t가 같으면 True, 아니면 False

str.indexOf("a") // str에서 "a"의 인덱스 위치, 없으면 -1반환

str.indexOf("a",5) // str에서 5번째 인덱스부터 "a"찾기

list.add(value) //배열에 value추가

String[] str = s.split(" ") // 문자열 공백 기준으로 1개씩 배열로 

str.toLowerCase() // 모든문자 소문자

str.toUpperCase() // 모둔문자 대문자

str.trim() // 공백 제거

str.substring(0,6); // 0번째 인덱스부터 5번쨰 인덱스까지

String str = new StringBuilder("hey").reverse().toString() // 문자열 뒤집기

 

List<string> list = new ArrayList<>();

arr[i] = list.get(i) // i번째 인덱스의 값 넣기

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

arr[i] = list.get(i).intValue() //정수 꺼낼때

Collections.sort(list) // 오름차순 정렬

list.add("hey") // list에 원소 추가

list.remove(list.size()-1) // list의 마지막원소 삭제

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

 

 

Set<String> set = new HashSet<>()

set.add("hey") //값 추가

set.remove("hey") //값 삭제

Iterator<String> it = set.iterator();

while(it.hasNext()){//다음값이 존재하는지

      String s = it.next() //참조값

}

 

int[] a={1,2,3,4,5};

int[] b = a.clone() //a배열을 b에 깊은 복사

2차원은 2중 for문을 직접 넣어서 복사

 

Math.max(3,5) // 큰수

Math.min(3,5) // 작은수 

 

PriorityQueue<Integer> pq = new PriorityQueue<>(); //최소힙

PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder()); //최대힙

 

Queue<Node> q = new LinkedList<>() : 큐 선언

q.add(new Node(a,b)) : 큐에 값 삽입

q.poll() : 큐의 맨앞요소 반환 후 삭제. 큐가 비어있으면 null반환

q.peek() : 큐의 맨앞요소 반환. 큐가 비어있으면 null반환

q.isEmpty() : 큐가 비어있으면 True 아니면 False

q.remove() : 큐의 맨앞요소 삭제

 

Deque<Node> q = new ArrayDeque<>() : 덱 선언

Stack<Integer> s = new Stack<>() : 스택선언

s.push(3) : 삽입

s.pop() : 삭제

s.peek() : 제일 상단 요소 반환

s.empty() : 비어있는지 여부

 

Map<String,int> m = new HashMap<>(); 

m.put("s",1) // 삽입

m.get("s") //value 가져오기

m.containsKey("s") // "s"라는 key값 존재시 True, 아니면 False

m.getOrDefault("s",5) // "s"존재하면 "s"의 value반환, 없으면 5반환

Iterator<String> it = map.keySet().iterator();

while(it.hasNext()){

   String key = it.next();

   int value = map.get(key);

}

 

Pair대신 class정의

class Node{
        String s;
        int cnt;
        Node(String s, int cnt){
            this.s = s;
            this.cnt=cnt;
        }
    }

 

 

 

 

 

 

 

'Develop > Java' 카테고리의 다른 글

객체지향 프로그래밍이란?  (0) 2021.10.31
[JAVA] 오버로딩 VS 오버라이딩  (0) 2021.10.31
[JAVA] 캡슐화 & 다형성 & 상속  (0) 2021.10.31
[JAVA] List Collection  (0) 2021.10.04
[JAVA] 자바란?  (0) 2021.10.04

댓글