문제:

시도 횟수: 2번 (서브태스크1 30점)
처음 생각한 방법: 주어진 대로 입력 받은 후 식대로 계산시키도록 만들었다.
내 코드:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b, result;
cin >> a >> b;
result = (a+b) * (a-b);
cout << result;
return 0;
}
당연히 맞을 줄 알고 있었는데 30점만 맞았다. 이런 적은 처음이었어서 신기하고 당황스러웠다.
다시 생각해보니 최댓값이 100,001 * 99,999일텐데 근사해서 100,000의 제곱이라하면 0의 개수가 10개가 된다.
int는 0의 개수가 9개까지이므로 long long으로 바꿔준다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long a, b, result;
cin >> a >> b;
result = (a+b) * (a-b);
cout << result;
return 0;
}
모범답안: 비슷비슷하다.
내 코드의 개선할 점: 헤더, cin, cout
지금까지 푼 것들을 하나도 정리를 안해서 아마 앞으로 몇십문제 정도에서 계속 같은 개선점이 있을 것이다.
따라서 헤더, 네임스페이스, cin/cout의 입출력 속도 개선 등의 문제는 앞으로 적지 않겠다.
알고리즘 분류: 수학, 구현, 사칙연산
난이도: 브론즈 V
복습하면서 참고해본 블로그 목록: X
'백준' 카테고리의 다른 글
[백준] 2738번 - 행렬 덧셈 (0) | 2024.03.18 |
---|---|
[백준] 2475번 - 검증수 (0) | 2024.03.18 |
[백준] 2754번 - 학점계산 (0) | 2024.03.18 |
[백준] 10872번 - 팩토리얼 (0) | 2024.03.18 |
[백준] 2741번 - N 찍기 (0) | 2024.03.18 |