728x90

문제

사파리월드는 인터넷으로만 존재하는 미스테리한 나라이다. 사파리월드에는 2개의 서브도메인이 seunghwan.royal.gov.sw와 kyuhyun.royal.gov.sw 이 있는데, 이것이 couple.royal.gov.sw으로 합쳐질 것이다. 그러나 도메인 관리 센터 SWNIC(센터장: 김동규)에는 엄격한 룰이 있다. 두 서브도메인을 합칠 때, 유명도의 차이가 너무 차이나지 않을 경우에만 두 서브도메인을 결혼시키는 것이다. 서브도메인의 유명도는 정수이다. 두 서브도메인의 유명도가 주어졌을 때, 그 차이를 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 두 도메인의 유명도 N과 M이 주어진다. (-2,000,000,000 ≤ N, M ≤ 2,000,000,000)

 

출력

첫째 줄에 두 유명도의 차이 (|N-M|)을 출력한다.

 

예제 입력 1 

-2 5

 

예제 출력 1

7

 

출처

Olympiad > Baltic Olympiad in Informatics > BOI 2011 P1번

  • 문제를 번역한 사람: baekjoon
  • 문제의 오타를 찾은 사람: chanul0326, indioindio
  • 잘못된 데이터를 찾은 사람: rory143

 

알고리즘 분류

  • 수학
  • 구현
  • 사칙연산

 

문제 출처

https://www.acmicpc.net/problem/2420

 

2420번: 사파리월드

첫째 줄에 두 도메인의 유명도 N과 M이 주어진다. (-2,000,000,000 ≤ N, M ≤ 2,000,000,000)

www.acmicpc.net

 


 

문제 해결 방법

  • 입력값이 -20억부터 +20억까지이다. 따라서 int 자료형이 아닌 long long 자료형을 이용하여 문제를 푸는 것이 이 문제의 핵심이다.

 

코드

abs() 함수를 사용할 경우
#include <iostream>
using namespace std;

long long N, M, res;    // int가 아닌 long long 자료형으로 선언한다.

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> N >> M;

    res = abs(n - m);
    
    cout << res;

    return 0;
}

 

abs() 함수를 사용하지 않을 경우
#include <iostream>
using namespace std;

long long N, M, res;    // int가 아닌 long long 자료형으로 선언한다.

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> N >> M;

    if (N <= M) {
        if (M < 0) {
            N *= -1;
            M *= -1;
            res = N - M;
        }
        else {    // M >= 0
            res = M - N;
        }
    }
    else {    // N > M
        if (N < 0) {
            N *= -1;
            M *= -1;
            res = M - N;
        }
        else {    // N >= 0
            res = N - M;
        }
    }

    cout << res;

    return 0;
}

 

채점 결과

 

참고

  • 브론즈V 
728x90

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ-2563][C++] 색종이  (0) 2022.10.24
[BOJ-2566][C++] 최댓값  (0) 2022.10.24
[BOJ-2420][C++] 나부 함대 데이터  (0) 2022.10.20
[BOJ-2738][C++] 행렬 덧셈  (0) 2022.10.20
[BOJ-2292][C++] 벌집 ✨  (0) 2022.08.27
[BOJ-1712][C++] 손익 분기점  (0) 2022.08.27
[BOJ-1316][C++] 그룹 단어 체커  (0) 2022.08.24
[BOJ-2941][C++] 크로아티아 알파벳  (0) 2022.08.24