알고리즘/백준

[java] 백준 2420번 사파리월드

펄찌 2021. 7. 25. 15:33

 

이 문제 같은 경우 나는 문제 내용을 이해하지 못했다... 

문제의 요점은 두 서브도메인을 합칠 때, 유명도의 차이가 너무 차이나지 않을 경우에만 두 서브도메인을 결혼시키는 것

인데... 그래서 어쩌라는건지... 출력을 보고 알았다. 절대값을 구하라는 것 (ㅣN-Mㅣ)을 출력하라는 것.

 

간단하다. Math.abs 함수를 쓰면 절대값을 쉽게 구할 수 있다.

백준 사이트에서는 예제에 나오는 입력값 말고도

극한의 상황을 만들기 위해 입력에 주어진 (-2,000,000,000 ≤ N, M ≤ 2,000,000,000)을 입력값으로 넣어버리는 경우가 있기 때문에 BigInteger 클래스를 썼다. 

 

BigInteger 클래스를 쓴 알고리즘 문제는 여기서도 볼 수 있다. 설명도 함께 달아놨으니 BigInteger 클래스를 모르신 분들은 보고오셔도 좋다.

 

[java] 백준 10757번 큰 수 A+B

import java.math.BigInteger; import java.util.Scanner; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); BigInteger A = sc.nextBigInteger(); BigInteger B =..

begin-dev-awos.tistory.com

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        BigInteger N = sc.nextBigInteger();
        BigInteger M = sc.nextBigInteger();

        BigInteger result = N.subtract(M).abs();

        System.out.println(result);
    }
}

여기서 우리가 봐야될 것은 N.subtract(M).abs() 이 부분이다.

BigInteger 클래스에서 지원하는 함수중에 subtract라는 함수가 있다. 말 그대로 '빼기(차)'이다.

 

N에 -2라는 수가 입력, M에 5라는 수가 입력 되었기 때문에 -2 - 5를 하라는 함수이다.

그리고 뒤에 abs()라는 함수를 써주게 되면 -2 - 5 결과값은 -7이 되지만 절대값으로 변하기 때문에 결과 출력이 7이 된다.

반응형