Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

집 짓는 개발블로그

하루만에 코딩테스트 언어 갈아타기(Python → Java)(6 진법변환, 포매팅, Math, min/max) 본문

Java

하루만에 코딩테스트 언어 갈아타기(Python → Java)(6 진법변환, 포매팅, Math, min/max)

취준er 2024. 11. 15. 03:15

반올림, 올림, 절댓값(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이다.