Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

방카@Dev

[Java]코딩테스트용 주요 메서드 모음 본문

BackEnd/Java

[Java]코딩테스트용 주요 메서드 모음

방카킴 2024. 6. 10. 23:18

0. 라이브러리

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

 

1. 변수 선언

String[] arr1 = new String[5];
int[] arr2 = {1,2,3};

int N = 3;
int[] arr3 = new int[N];

 

2.Arrays

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

// 1. 오름차순 {0, 2, 3, 8, 10, 11}
Arrays.sort(arr1);

// 2. 내림차순 {11, 10, 8, 3, 2, 0}
Arrays.sort(arr1, Collections.reverseOrder());

// 3. 일부만 정렬 {2, 8, 11, 10, 3, 0} (0~4만 정렬)
Arrays.sort(arr1, 0, 4)

// 4. 오름차순 정렬하면 binary search로 특정 값을 찾을 수 있다.
Arrays.binarySearch(arr1, 2);

// 5. 배열을 어레이리스트로 변환할 떼!
List list = Arrays.asList(arr1);

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

3. length / length() / size()

  • length: 배열의 길이 (arr.length)
  • length(): String related object (str.length())
  • size(): Collections object (list.size())
// 1. length
int[] arr = new arr[3];
System.out.println(arr.length);

// 2. length()
String str = "java";
System.out.println(str.length());

// 3. size()
ArrayList<Integer> list = new ArrayList<>();
System.out.println(list.size());

4. String

String str = "hello world";

//길이 반환
str.length();

//빈문자열 체크
str.isEmpty();

//문자 찾기
str.charAt(0);  // 'h' -> 문자 반환
str.indexOf("e"); //1 -> 인덱스 반환
str.lastIndexOf("r"); // 8->마지막으로 문자가 속한 인덱스 반환

// 문자 자르기
str.substring(0, 5);  //인덱스 0 이상 5미만 위치의 문자열 반환
str.substring(3); //인덱스 3 이상 위치의 문자열 반환

for(int i = 0; i < str.length(); i++) str.charAt(i);

//문자 치환(바꾸기)
//replace([기존문자],[바꿀문자]) 
str.replace('e','o'); // 모든 [기존문자]를 [바꿀문자]로 치환

//문자 반복
str.repeat(k) //k번 반복

//문자 비교
/*
str과 "bye"가 같으면 0
str이 "bye"보다 사전순으로 앞이면 -1
str이 "bye"보다 사전순으로 뒤면 1
*/
str.compareTo("bye")

//문자 포함 여부 판단
str.contains("hell");

//문자열을 배열로 만들고 싶을 때
String str = "12345";
String[] Arr = str.split("");
char[] cRsp = str.toCharArray();

//문자 <-> 숫자 변환
Integer.parseInt("100") //문자열 "100"을 숫자 100으로 변환
Integer.toString(100) //숫자 100을 문자열 "100"으로 변환(1)
String.valueOf(100) //숫자 100을 문자열 "100"으로 변환(2)
Character.getNumericValue(char변수)

// 대소문자 여부 확인(Character 객체)
Character.isUpperCase(char변수);
Character.isLowerCase(char변수);

// 대소문자 변경
str = str.toUpperCase();		// HELLO WORLD
str = str.toLowerCase();		// hello world

// 접미사, 접두사
str.startsWith("특정문자"); // Boolean 타입
str.endsWith("특정문자"); 

// 한번 쓴 문자열은 변경 불가. substring 이용해서 새로운 변수로 선언해야함
String name="starfucks";
String newname=name.substring(0,4)+'b'+name.substring(5);	// starbucks

5. StringBuilder

StringBuilder sb = new StringBuilder();

sb.append("A"); //문자열 추가하기
sb.insert(1,"B"); //중간에 문자열 삽입하기
sb.delete(0,1); //문자열 삭제하기(~부터 ~까지)
sb.reverse(); // 문자열 뒤집기
sb.toString(); // 문자열 변환

String str = sb.append("A").append("B").append("C").append("D")
			.insert(4,"Java").delete(4,8).reverse().toString();  //메소드 체이닝

6. HashMap

// 1. 선언
HashMap<String, Integer> hm = new HashMap<>();

// 2. key-value 넣기
hm.put("java", 0);

// 3. 키로 값 가져오기
hm.get("java");

// 4. containsKey()로 존재유무 확인
if (!hm.containsKey("java")) hm.put("java", 1);

// 5. 특정 키가 없으면 값 설정, 있으면 기존 값 가져오는 함수
hm.put("java", hm.getOrDefault("java", 3);	

// 6. keySet() 함수로 맵 순회
for(String key : hm.KeySet()) {				
	hm.get(key);
}

7. ArrayList

// 선언
ArrayList<String> list = new ArrayList<>();

// 삽입
list.add("java");			// {"java"}
list.add(0, "python");			// {"python", "java"} (0번째 인덱스에 삽입)

// 수정
list.set(1, "kotlin");			// {"python", "kotlin"}

// 삭제
list.remove(1);				// {"python"}

// 가져오기
list.get(1);

// 값 존재 유무 확인
list.contains("java");		// false
list.indexOf("python");		// 0 존재하면 인덱스 리턴

// 리스트 길이
list.size();

//리스트에 다른 리스트 요소가 전부 포함되어 있는지 여부 체크
list.containsAll(list2);

//문자열 타입 배열을 list로 변환
String[] temp = {"apple","banana","lemon"};
List<String> list = new ArrayList<>(Arrays.asList(temp));

//list를 문자열 배열로 변환
List<String> list = new ArrayList<>();
String[] temp = list.toArray(new String[list.size()]);

 

8. Collections 관련 메소드

int[] temp = {1,2,3,10,20};
List<Integer> list = new ArrayList<>(Arrays.asList(arr));

//정수형 list 원소 중 최대, 최소값
Collections.max(list);
COllections.min(list);

//List 정렬
Collections.sort(list);	//오름차순(ASC)
Collections.sort(list, Collections.reverseOrder()); //내림차순 (DESC)

//List 뒤집기
Collections.reverse(list);

 

9.Queue

// 1. 선언
Queue<Integer> q = new LinkedList<>();		// linked list로 선언해야함

// 2. 삽입
q.add(10);			// {10}
q.offer(2);			// {10, 2}

// 3. 프론트값 반환
q.peek();			// 10

// 4. 삭제
q.remove();
q.poll();

// 5. 초기화
q.clear();

// 6. 비었는지
q.isEmpty();

// 7. pair 같은 경우는 그냥 구현해서 사용
static class Node{
        int y;
        int x;
        int dist;
        
        Node(int y,int x,int dist){
            this.y=y;
            this.x=x;
            this.dist=dist;
       }
   }

Queue<Node> queue=new LinkedList<>();
queue.add(new Node(1,2,3));
Node node= queue.poll();

 

 

10. Math 라이브러리

// 1. 최대 최소
Math.max(10, 2);
Math.min(10, 2);

// 2. 절대값
Math.abs();

// 3. 올림 내림 반올림
Math.ceil(-3.2);		// -3
Math.floor(-3.2);		// -4
Math.round(-3.26);		// -3	첫째자리에서 반올림

// 3-1. 소수 둘째, 셋째 자리에서 반올림 하고 싶다면
double a = 1.23456;
String b = String.format("%.1f", a);	// .1f는 둘째자리에서 반올림

// 4. 제곱 제곱근
Math.pow(2, 2);		// 2^2 = 4
Math.sqrt(4);		// 2