SSAFY/JAVA문법 정리

[JAVA] 알고리즘 Array (2)

황성안 2021. 2. 5. 23:27
728x90

java.lang.StringBuilder

ex) StringBuilder sb = new StrinBuilder(); 

 

append() - sb.append 를 통해 문자열을 합칠수가있습니다. 

toString() - 이거슨 sb를 출력할때 쓸수있는거십니당,

출력을할떄 sb.toString() 을 넣어주면 sb.append 로 저장한 값을 출력합니다.

 

알고리즘을 풀때 tip

1. 이해하기

2. 자신의 익숙한 용어로 재정의

3. 계획세우기 ( 틀을 만들어보세요)

4. 검증해보기

5. 프로그램 구현

6. 다시 확인해보며 개선 방법이있나? 찾아보기.

 

 

전략

비슷한문제 생각하기

단순하게 flat 하게 생각해보기

그림으로 가시화시키기

수식으로 가능할까?

문제 분해시키기(세분화)

뒤에서부터 생각해볼까?

틍정 형태의 답만 고려가능한가?

 

좋은 알고리즘

1. 정확성

2. 작업량

3. 메모리 사용량

4. 단순성

5. 최적성

- 현재나는 정확성만을 목표로 코딩중이다.. 어떤 코드든 우선 돌아가야지 하기때문 ㅠㅠ

 

복잡도의 점근적 표기 

빅-오(O) 표기법 - 가장 큰 영향력을 주는 n에 대한 항만 표시, 계수는 생략 (1억에 1초가 걸린다고 생각하자.)

 

배열 순회

1 2 3 4 5

첫번째 배열에서부터 찾기 ( shift 밀어보기 실습을해보세요)

1 2 3 4
2 3 4 1

이거슨 오른쪽 (>>) shift 한것, 왼쪽으로으로는 이와 반대로 하면된다.

 

반복과 재귀

1. 반복의 패턴 찾기 ( 단위 반복을 찾는 것) 

2. 재귀는 더 작은 문제들로 쪼개어 결합하면 해결된다. 

 

여기서 재귀 함수란?

- 함수 내부에서 직접 혹은 간접적으로 자신을 호출하는 함수

- 일반적으로 재귀적 정의를 이용하여 재귀 함수 구현

- 기본 부분(basis part)와 유도 파트(inductive part)로 구성된다.

- 재귀적 프로그램을 작성하는 것은 반복 구조에 비해 간결하여 이해하기 쉽다. 

- 메모리 구조에서 스택을 사용!

- 반복적 스택을 사용하여 메모리 및 속도에 성능 저하발생

 

 

728x90

'SSAFY > JAVA문법 정리' 카테고리의 다른 글

[ JS ]  (0) 2021.06.27
[JAVA] 알고리즘 String  (2) 2021.02.07