문제 출처: https://www.acmicpc.net/problem/2420
2420번: 사파리월드
첫째 줄에 두 도메인의 유명도 N과 M이 주어진다. (-2,000,000,000 ≤ N, M ≤ 2,000,000,000)
www.acmicpc.net
Sol)
#include <stdio.h>
int main(){
long long s1, s2;
long long diff;
scanf("%lld %lld", &s1, &s2);
diff = s1 >= s2 ? s1 - s2 : s2 - s1;
printf("%lld\n", diff);
return 0;
}
- 풀이 방향
두 수의 차의 절댓값을 구하는 간단한 문제이다. 입력값의 제한범위는 int 범위 내이지만, 계산 결과가 int범위가 넘어갈 수 있으므로 두 수를 long long 형으로 선언해 주어야겠다. int끼리의 연산 결과는 int형이므로 overflow가 발생할 수 있기 때문이다.
- 풀이
두 수의 절댓값을 구하는 방법은 삼항연산자를 선택했다. 만일 함수를 사용하고 싶다면 llabs()함수를 사용해도 되겠다.
- 문제에 대한 사견
이 문제는 자료형에 주의하지 않으면 실수를 할 가능성이 높은 문제이다. int끼리의 계산 결과는 int라는 것은 항상 주의하자! 또한, 이 문제로 이런 저런 시험을 하다가 발견한 주의점이 있다. 놓치기 쉬운 부분이므로 함께 확인해 보면 좋겠다. 해당 포스트의 링크는 아래에 달아두겠다.
https://csloth.tistory.com/25?category=1115835
정수 자료형의 저장 방식과 scanf함수 사용시 주의할 점
오늘 백준 문제를 풀고 해당 코드를 이리저리 만져보다 발견한 주의점이다. 해당 문제: https://csloth.tistory.com/24 백준 2420번 사파리 월드 [C언어] 문제 출처: https://www.acmicpc.net/problem/2420 2420번..
csloth.tistory.com
'BOJ' 카테고리의 다른 글
백준 1934번 최소공배수 [C언어] (0) | 2022.08.29 |
---|---|
백준 3053번 택시 기하학 [C언어] (0) | 2022.08.29 |
백준 3009번 네 번째 점 [C언어] (0) | 2022.08.25 |
백준 10163번 색종이 [C언어] (0) | 2022.08.22 |
백준 11098번 첼시를 도와줘! [C언어] (0) | 2022.08.22 |