728x90
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
문제 해결 방법
- 입력값이 -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
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 |