자료구조와 알고리듬 With Java/[프로그래머스] Algorithm

Part 01 시작하기

계란💕 2022. 3. 21. 10:21

1. primitive (기본형)

  - 자바는 기본형마다 래퍼 클래스 제공

  - 자바에서는 string을 immutable 데이터로 취급

  - call by value: value값이 그대로 전달된다.

  - call by reference

 

 

2. 시간 복잡도 (O(n))

  Def) 시간 복잡도: 입력되는 데이터의 증가에 따른 성능의 변화를 예측

    -> 작업량(시간 복잡도): 얼마나 적은 연산으로 결과를 만들어 내는가

      Note) 메모리 사용량(공간 복잡도): 얼마나 적은 메모리를 사용하여 결과를 만드는가

 

    ->Big O 표기법: O(n)

    -> O(1): 연산의 양이 변하지 않고 그대로 일 때

    -> O(n): n에 비례하여 처리횟수가 증가하는 경우

    -> O(n^2): 

    -> O(log n): 입력 데이터가 n개 일 때, 처리횟수가 절반씩 줄어드는 경우

 

 

3. Mutable / Immutable

  - String literal로 생성되는 String객체의 경우 immutable 값이다.

  - 따라서 String내용이 변경되면 기존의 값이 변경되지 않고 새로운 인스턴스가 생성된다. 

  - 일부 래퍼 클래스는 immutable 객체처럼 동작한다.

 

 

4. Java API 문서 링크

 

  https://docs.oracle.com/javase/8/docs/api/