본문 바로가기
백준

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

by 템닉___ 2024. 3. 18.

문제:

시도 횟수: 2번

처음 생각한 방법: 사실 문제를 제대로 읽지도 않았던 것 같다. 11일 전에 푼 문젠데 전혀 기억이 안난다. 그냥 입력과 출력만 보고 두 수의 차이 절댓값 구하기를 바로 한 것 같은데... abs라는 함수가 있었는지 기억이 안나서 구글링 한번 해보고 제출했었다.
처음에 틀린건 N, M의 범위를 대충 보고 int로 설정해둔것 때문. int의 범위가 -2,100,000,000~2,100,000,000으로 기억하고 있어서 당연히 맞을 줄 알았는데, int끼리의 계산 결과는 int로 나온다는 것을 깜빡했었다. |2,000,000,000 - (-2,000,000,000)| 이 int의 범위를 벗어나므로 long long으로 변수를 설정해야했다.

내 코드:

#include <bits/stdc++.h>
using namespace std;

int main()
{
   long long N,M;
   cin >> N >> M;
   cout << abs(N-M) << "\n";
   return 0;
}

모범답안:

#include<stdio.h>
int main(){
long a,b;
scanf("%ld %ld",&a,&b);
printf("%ld",(a>b)?a-b:b-a);
}

abs함수는 std에 있어서 사실상 성능에 위해되는 요소는 아니나, 함수를 쓰지 않고 삼항연산자로 구현할 수 있다는 사실을 알아두면 좋을 것 같다.

내 코드의 개선할 점:  cin, cout은 입출력시간을 잡아먹으므로 printf, scanf를 쓰는 게 좋을듯 하다.

알고리즘 분류: 수학, 구현, 사칙연산

난이도: 브론즈 V

복습하면서 참고해본 블로그 목록:  

https://blockdmask.tistory.com/335

 

[C언어/C++] 절대값 함수 abs, fabs에 대해서.

안녕하세요. BlockDMask 입니다. 오늘은 절대값을 구할 수 있는 절대값 함수 abs에 대해서 알아보려고 합니다. 1. C 언어에서의 abs, fabs 함수 (헤더파일과 함수 원형) 2. C++에서의 std::abs 함수 (헤더파일

blockdmask.tistory.com

 

 

 

'백준' 카테고리의 다른 글

[백준] 10872번 - 팩토리얼  (0) 2024.03.18
[백준] 2741번 - N 찍기  (0) 2024.03.18
[백준] 25083번 - 새싹  (0) 2024.03.18
[백준] 7287번 - 등록  (0) 2024.03.18
[백준] 10699번 - 오늘 날짜  (0) 2024.03.18