관리 메뉴

LC Studio

알고리즘 분류별 정리 (새롭게 알게 된 지식 정리 노트) 본문

Java/Java의 정석

알고리즘 분류별 정리 (새롭게 알게 된 지식 정리 노트)

Leopard Cat 2022. 5. 10. 00:28

문자열

문자열 분리 / 문자열 자르기 : substring(int index)

ex)

String str = "012345678"

 

str.substring(5) ->5678 return

str.substring(5, 7) -> 567 return

 

문자열이 숫자인지 문자인지 판별 : Character.isDigit()

 

ex) char을 활용 한글자씩 비교,

str = abc -> true

str = 1bc, ab1 -> false

for (int i = 0; i < str.length(); i++) {
    if (!Character.isDigit(str.charAt(i))) {
        isNumeric = false;
    }
}

배열

배열에 특정 값이 들어있는지 확인 : Arrays.asList(array).contains(value)

배열에 특정 값이 Index(위치) 구하기 : Arrays.asList(array).indexOf(value)

ex)

String[] arr = {"a","b","c"};

System.out.println(Arrays.asList(arr).indexOf("c")); //2이 출력

 

 

 


큐 (Queue)

'선입선출' 자료구조 : Queue<Integer> q = new LinkedList<>();

ex)

q.offer(x) -> x 추가 (push)

q.poll() -> 가장 앞에있는 정수 반환 후 삭제 / empty의 경우 null 반환, (pop)

q.remove() -> poll과 비슷한 기능 / 단 empty의 경우 error반환

q. peek() -> 가장 앞에있는 정수 반환 / poll()에서 삭제기능 없는 것

q.,size() -> 요소의 개수

q.isEmpty() -> ture or false

q.contains()  -> 현재 찾고자하는 요소가 큐에 들어가있는지

q.clear() -> 요소 전체 삭제

 

덱 (Queue)

Double-ended Queue :  양방향의 지점이 있는 큐

ex)

q.peekLast(); -> 가장 뒤있는 정수 반환

q.peekFirst(); -> 가장 앞에있는 정수 반환


HashMap

HashMap 선언 : HashMap<String,String> map1 = new HashMap<String,String>();

 

HashMap 값 추가 : map.put(1,"사과");

 

HashMap 값 삭제 : remove(1); // 1키값 삭제

 

value 값 얻기 : map.get(key)

key 값 얻기 : for (String key : map.keySet()) // for문으로 전체 key값 얻기

 


그래프 알고리즘

합집합 / 두개의 노드가 같은 그래프에 속하는지 : (Union-Find)

○Find : x가 어떤 집합에 포함되어 있는지 찾는 연산(재귀호출 통해 찾음)

○Union : x와 y가 포함되어 있는 집합을 합치는 연산

ex)

// find 구현
    public static int find(int x) {
        if(x == parent[x])
            return x;
        else 
            return parent[x] = find(parent[x]);
    }
// union 구현
    public static void union(int a, int b) {
        a = find(a);
        b = find(b);
        if(a != b) {
            parent[b] = a;
        }
    }

 

반응형