Math 클래스
Algorithm 관련 포스팅
- 최빈값 구하기
- k의 개수 구하기
- String
- 문자열 정렬하기
- 인덱스 바꾸기
- 제곱수 판별하기
- Math
- 배열 회전시키기
- A로 B 만들기
- 잘라서 배열로 저장하기
- Array와 ArrayList
- 저주의 숫자 3
이 글은 알고리즘 문제를 풀면서 Math와 관련한 메서드를 정리한 것입니다.
제곱근
-
Math.sqrt()
: double 타입의 인수를 전달하면 제곱근을 반환double sqrt(double a)
-
예시
System.out.println(Math.sqrt(3)); // 1.7320508075688772 System.out.println(Math.sqrt(9)); // 3.0 System.out.println(Math.sqrt(0)); // 0.0 System.out.println(Math.sqrt(-9)); // NaN(Not A Number): 음수 입력시 잘못된 입력임을 나타냄
- result
1.7320508075688772 3.0 0.0 NaN
올림/반올림/내림
Math.ceil()
: 주어진 값을 올림하여 반환Math.round()
: 소수 첫째 자리에서 반올림한 long 타입의 정수값을 반환-
Math.floor()
: 주어진 값을 내림하여 반환double ceil(double a) long round(double a) double floor(double a)
-
예시
double d = 1.234567; double d2 = 9.8765432; System.out.println(Math.ceil(d)); // 2.0 System.out.println(Math.ceil(d2)); // 10.0 System.out.println(Math.round(d)); // 1 System.out.println(Math.round(d2)); // 10 System.out.println(Math.floor(d)); // 1.0 System.out.println(Math.floor(d2)); // 9.0
- result
2.0 10.0 1 10 1.0 9.0
난수
-
Math.random()
:0.0 ≤ x <1.0
범위의 double 타입 난수를 반환double random()
- 예시:
1≤ x < 3
범위의 난수를 생성-
Math.random()
범위0.0 <= Math.random() < 1.0
-
각 변에 3을 곱함
0.0 * 3 <= Math.random() * 3 < 1.0 * 3
-
int
로 형변환(int)0.0 <= (int)(Math.random() * 3) < (int)3.0
-
각 변에 1을 더함
1 <= (int)(Math.random() * 3) + 1 < 4
-
-
예시
// 1 <= x < 10 사이 난수 System.out.println((int)(Math.random()*10) + 1); // 9 // 1 <= x < 3 사이 난수 System.out.println((int)(Math.random()*3) + 1); // 1
- result
9 1
최댓값/최솟값
-
Math.max()
: 주어진 두 값을 비교하여 큰 쪽을 반환int max(int a, int b) double max(double a, double b) float max(float a, float b) long max(long a, long b)
-
Math.min()
: 주어진 두 값을 비교하여 작은 쪽을 반환int min(int a, int b) double min(double a, double b) float min(float a, float b) long min(long a, long b)
-
예시
// 최댓값 System.out.println(Math.max(7, 2)); // 7 System.out.println(Math.max(-5.2, 3.14)); // 3.14 System.out.println(Math.max(1.4f, 3.14f)); // 3.14 System.out.println(Math.max(123, 100L)); // 123 // 최솟값 System.out.println(Math.min(3, 8)); // 3 System.out.println(Math.min(-1.05, 4.8)); // -1.05 System.out.println(Math.min(2.56f, -2.84f)); // -2.84 System.out.println(Math.min(398L, 077)); // 63
- result
7 3.14 3.14 123 3 -1.05 -2.84 63