https://teresa88.tistory.com/60
https://teresa88.tistory.com/61
https://teresa88.tistory.com/62
https://teresa88.tistory.com/63
https://teresa88.tistory.com/64
1. StringTokenizer의 메소드
https://teresa88.tistory.com/48
저번에는 StringTokenizer가 무엇인지 개념을 공부했는데 메소드 공부가 필요하여 메소드를 정리하려 한다.
1-1. hasMoreToken() / hasMoreElements()
- StringTokenizer 에서 사용할 수 있는 토큰이 더 있는지 확인한다.
- return 은 boolean 형이다.
- 토큰이 존재하면 true, 없으면 false를 반환 한다.
1-2. nextToken()
- StringTokenizer 에서 다음 토큰을 불러오는 메소드 이다.
- return 은 String형이다.
1-3. nextElement()
- 1-2와 동일 하지만 Object 타입으로 반환 한다.
1-4. countTokens()
- 토큰의 개수를 센다.
- return 은 int 형이다.
참고한 사이트
https://codevang.tistory.com/125
https://crazykim2.tistory.com/473
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=asap0628&logNo=220721551020
2. Math 함수
- 수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스
- 모든 메소드는 static 이다 → 객체를 생성하지 않고도 바로 사용 가능하다.
- java.lang 패키지에 포함되어 있다.
2-1. random()
- 임의의 수를 생성한다.
- 0.0 이상 1.0 미만의 double형 값을 생성하여 반환한다.
2-2. abs()
- 절대값을 구하는 함수
2-3. max() / mix()
- max() - 전달된 2개의 값을 비교하여 큰 값을 반환한다.
- min() - 전달된 2개의 값을 비교하여 가장 작은 값을 반환한다.
2-4. pow() / sqrt()
- pow() - 전달 받은 2개의 double형 값을 가지고 제곱 연산을 수행한다.
- sqrt() - 전달 받은 double형 값의 제곱근 값을 반환한다.
2-5. floor() / ceil() / round()
- floor() - 전달 받은 값과 같거나 작은 수 중에서 가장 큰 정수를 반환한다.
- ceil() - 전달 받은 값과 같거나 큰 수 중에서가장 작은 정수를 반환한다.
- round() - 전달 받은 실수를 소수점 첫째 자리에서 반올림한 정수를 반환한다.
이것 외에도 더 많은 메소드들이 있고 참고한 사이트에서 더 많은 메소드를 확인할 수 있다.
참고한 사이트
http://www.tcpschool.com/java/java_api_math
https://thalals.tistory.com/13
3. Greedy Algorithm (탐욕 알고리즘)
- 동적 프로그래밍 사용 시 지나치게 많은 일을 하기 때문에 서로 보완하면서 사용한다.
- 최적에 가까운 값을 구하기 위해 사용되는 알고리즘이다. → 근사치 추정에 활용한다.
- 매 순간 최적이라고 생각되는 경우를 선택하여 최종 값을 구한다.
- 전체에서 최적값을 언제나 구할 수는 없지만 속도가 빠르다. → 빠르게 근사치 추정을 할 수 있다.
- 특수한 조건이 필요하다.
- 탐욕 선택 속성 - 이전의 선택이 이후에 영향을 주지 않음을 의미한다.
- 최적 부분 구조 - 부분 문제의 최적결과가 전체에도 그대로 적용 될 수 있어야 한다.
3-1. Dynamic Programming
- 동적계획법 or 동적 프로그래밍이라고 부른다.
- 하나의 큰 문제를 작은 문제로 나누어서 해결한다.
- 해결한 답을 저장하고 재활용한다.
- 사용 조건
- Overlapping Subproblems(겹치는 부분 문제)
- 동일한 작은 문제들이 반복하여 나타나는 경우 사용 가능하다.
- Optimal Substructure(최적 부분 구조)
- 부분 문제의 최적 결과 값을 사용해 전체 문제의 최적 결과를 낼 수 있는 경우
- 특정 문제의 정답은 문제의 크기에 상관없이 항상 동일하다.
- Overlapping Subproblems(겹치는 부분 문제)
참고한 사이트
https://hongjw1938.tistory.com/172
https://st-lab.tistory.com/143
https://hongjw1938.tistory.com/47
'스터디일지 > JAVA' 카테고리의 다른 글
[2023.08.01] 자바 객체 지향 프로그래밍 (0) | 2023.08.01 |
---|---|
[2023.07.31] 자바의 예외 처리 (0) | 2023.07.31 |
[2023.07.28] 요세푸스 순열 / PriorityQueue / Heap (0) | 2023.07.28 |
[2023.07.27] BufferedWriter / Character Class (0) | 2023.07.27 |
[2023.07.26] StringTokenizer / Queue & Deque / Stack (0) | 2023.07.26 |