> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java BigDecimal

jini:) 2023. 9. 20. 12:14
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > BigNumber > Java BigDecimal
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

Java의 BigDecimal 클래스는 임의 정밀도의 부호 있는 십진수를 처리할 수 있습니다. 그들에 대한 지식을 테스트합시다!

 

n개의 실수 문자열이 있는 배열 s가 주어지면 내림차순으로 정렬하십시오. 하지만 잠깐만요, 더 있습니다! 각 숫자는 stdin에서 읽은 것과 정확히 동일한 형식으로 출력되어야 합니다. 즉, .1은 .1로 인쇄되고 0.1은 0.1로 출력됩니다. 두 숫자가 수치적으로 동일한 값을 나타내는 경우(예: .1=0.1) 입력으로 수신된 것과 동일한 순서로 나열되어야 합니다.

 

아래 편집기의 잠금 해제된 섹션에서 코드를 완성하세요. 위의 지침에 따라 배열 s의 요소를 재정렬해야 합니다.

 

Input Format

  • 첫 번째 줄은 정수 문자열의 수를 나타내는 단일 정수 n으로 구성됩니다.
  • n개의 후속 라인의 각 라인 i는 sᵢ 값을 나타내는 실수를 포함합니다.

 

Constraints

  • 1 ≤ n ≤ 200
  • 각 sᵢ는 최대 300자리입니다.

 

Output Format

편집기에서 잠긴 스텁 코드는 배열 s의 내용을 stdout으로 출력합니다. 배열의 요소를 재정렬하는 작업만 담당합니다.

 

 

Sample Input

9
-100
50
0
56.6
90
0.12
.12
02.34
000.000

 

Sample Output

90
56.6
50
02.34
0.12
.12
0
000.000
-100

 

 

Code

import java.math.BigDecimal;
import java.util.*;
class Solution{
    public static void main(String []args){
        //Input
        Scanner sc= new Scanner(System.in);
        int n=sc.nextInt();
        String []s=new String[n+2];
        for(int i=0;i<n;i++){
            s[i]=sc.next();
        }
        sc.close();

        //Write your code here
        Arrays.sort(s, 0, n, new Comparator<String>() {
            public int compare(String s1, String s2) {
                BigDecimal b1 = new BigDecimal(s1);
                BigDecimal b2 = new BigDecimal(s2);
                return b2.compareTo(b1);
            }
        });

        //Output
        for(int i=0;i<n;i++)
        {
            System.out.println(s[i]);
        }
    }
}

 

Arrays.sort() 배열 s의 인덱스 0부터 n까지(n-1) Comparator로 정렬
Comparator 두 매개변수 객체를 비교
Comparator 사용시 compare()메소드 필수 구현
compare() 메소드에 객체를 비교할 기준을 정의 = 비교할 두 매개변수 객체
compareTo
=> 음수 : 타 원소 큼 b2 < b1
=> 0 : 두 원소 같음 b2 = b1
=> 양수 : 본인이 큼 b2 > b1

 

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

728x90
반응형