집 짓는 개발블로그
하루만에 코딩테스트 언어 갈아타기(Python → Java)(6 진법변환, 포매팅, Math, min/max) 본문
반올림, 올림, 절댓값(Math.abs()), min, max와 같은 메소드들은 import java.lang.Math; 해야 사용 가능하다.
Math.min(), Math.max()는 두 인수들만 비교할 수 있다.
ArrayList나 배열의 최댓값/최솟값을 찾으려면 다른 방법을 사용해야 한다. 아래 정리했다.
1-1. 10진수를 다른 진수로 변환하기(2, 8, 16)
int number = 42;
String binary = Integer.toBinaryString(number); // 2진수 변환
String octal = Integer.toOctalString(number); // 8진수 변환
String hex = Integer.toHexString(number); // 16진수 변환
System.out.println("Binary: " + binary); // 출력: 101010
System.out.println("Octal: " + octal); // 출력: 52
System.out.println("Hex: " + hex); // 출력: 2a
1-2. 10진수를 다른 진수로 변환하기(그 외)
int number = 42;
String base3 = Integer.toString(number, 3); // 3진수 변환
String base7 = Integer.toString(number, 7); // 7진수 변환
System.out.println("3진수: " + base3); // 출력: 1120
System.out.println("7진수: " + base7); // 출력: 60
2. 다른 진수를 10진수로 변환하기
String binaryString = "101010";
String octalString = "52";
String hexString = "2a";
int binaryToDecimal = Integer.parseInt(binaryString, 2); // 2진수 -> 10진수
int octalToDecimal = Integer.parseInt(octalString, 8); // 8진수 -> 10진수
int hexToDecimal = Integer.parseInt(hexString, 16); // 16진수 -> 10진수
System.out.println("Binary to Decimal: " + binaryToDecimal); // 출력: 42
System.out.println("Octal to Decimal: " + octalToDecimal); // 출력: 42
System.out.println("Hex to Decimal: " + hexToDecimal); // 출력: 42
3. 포매팅
String name = "Alice";
int age = 25;
System.out.printf("Name: %s, Age: %d\n", name, age);
// 출력: Name: Alice, Age: 25
+ 퍼센트 기호를 출력하려면 %%를 쳐야 함
4. 반올림
double value = 123.45678;
double rounded = Math.round(value * 100.0) / 100.0; // 소수점 둘째 자리 반올림
5. 올림
double value = 123.45678;
double ceiled = Math.ceil(value * 100.0) / 100.0; // 소수점 둘째 자리 올림
6. 버림
double value = 123.45678;
double floored = Math.floor(value * 100.0) / 100.0; // 소수점 둘째 자리 버림
7. 최댓값/최솟값 구하기
1) ArrayList에서
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(5);
list.add(2);
list.add(8);
list.add(1);
int min = Collections.min(list); // 최소값
int max = Collections.max(list); // 최대값
System.out.println("ArrayList 최소값: " + min);
System.out.println("ArrayList 최대값: " + max);
}
}
2) 배열에서
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] array = {5, 2, 8, 1};
int min = Arrays.stream(array).min().getAsInt(); // 최소값
int max = Arrays.stream(array).max().getAsInt(); // 최대값
System.out.println("배열 최소값: " + min);
System.out.println("배열 최대값: " + max);
}
}
8. 거듭제곱
Math클래스의 pow(밑, 진수)를 이용한다.
입력 2개와 출력 모두 double이다.
'Java' 카테고리의 다른 글
(Java, Python) 지역변수와 전역변수 (2) | 2024.11.17 |
---|---|
Java로 순열, 조합 만들기 (0) | 2024.11.16 |
하루만에 코딩테스트 언어 갈아타기(Python → Java)(5 문자열처리) (0) | 2024.11.15 |
하루만에 코딩테스트 언어 갈아타기(Python → Java)(4 HashSet, HashMap) (4) | 2024.11.15 |
하루만에 코딩테스트 언어 갈아타기(Python → Java)(3 Array) (4) | 2024.11.15 |