[210212][백준/BOJ] 10093번 숫자
문제
입출력
풀이
정말 단순해 보이는 문제지만 생각해볼게 많은 문제이다.
첫째로 두 정수 A와 B가 1부터 10의 15승까지의 범위를 가진다.
따라서 int형으로는 두 정수를 담을수가 없다.
int형은 최대 대략 21억까지 담을 수 있으며 이를 초과하면 overflow가 발생하게 된다.
따라서 더 많은 범위의 수를 담을 수 있는 long long 자료형을 사용해야한다.
둘째로 B가 반드시 A보다 크다는 보장이 없으므로 모든 경우의 수를 다 생각해야한다.
A가 B보다 큰 경우의 수, A와 B가 같은 경우의 수, A가 B보다 작은 경우의 수를 생각하면 된다.
코드
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long A, B;
cin >> A >> B;
if (A > B)
{
std::swap(A, B);
}
if (A < B)
{
printf("%lld\n", B - A - 1);
for (long long i = A + 1; i < B; i++)
printf("%lld ", i);
}
else
printf("0");
}
Author And Source
이 문제에 관하여([210212][백준/BOJ] 10093번 숫자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kwkim95/210212백준BOJ-10093번-숫자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)