[백준/BOJ] 10093번_숫자 (C++/Java)

JIMIN·2023년 2월 2일

BOJ_Bronze

목록 보기
55/75

https://www.acmicpc.net/problem/10093

문제


두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오.


입력


두 정수 A와 B가 주어진다.


출력


첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다.
둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다.


서브태스크


번호배점제한
1301 ≤ A, B ≤ 1000.
2701 ≤ A, B ≤ 10^15, A와 B의 차이는 최대 100,000.


💻 예제 입력

8 14

💻 예제 출력

5
9 10 11 12 13

C++ 소스코드


#include <iostream>
using namespace std;

int main(void)
{
    long long A, B;
    cin >> A >> B;
    
    // A = B인 경우
    if (A == B)
        cout << "0\n";
    
    // A > B인 경우
    else if (A > B)
    {
        cout << A - B - 1 << "\n";  // B~A 사이 정수의 개수
        
        for (long long i = B+1; i < A; i++) // 정수 출력
            cout << i << " ";
        cout << "\n";
    }
    
    // A < B인 경우
    else if (A < B)
    {
        cout << B - A - 1 << "\n";  // A~B 사이 정수의 개수
        
        for (long long i = A+1; i < B; i++) // 정수 출력
            cout << i << " ";
        cout << "\n";
    }
}

Java소스코드


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] s = br.readLine().split(" ");
        long A = Long.parseLong(s[0]);
        long B = Long.parseLong(s[1]);

        // A = B인 경우
        if (A == B)
            System.out.println("0");

        // A > B인 경우
        else if (A > B)
        {
            System.out.println(A - B - 1);  // B~A 사이 정수의 개수

            for (long i = B+1; i < A; i++)
                System.out.print(i + " ");
            System.out.println();
        }

        // A < B인 경우
        else if (A < B)
        {
            System.out.println(B - A - 1);  // A~B 사이 정수의 개수

            for (long i = A+1; i < B; i++) // 정수 출력
                System.out.print(i + " ");
            System.out.println();
        }
    }
}
profile
잘못된 코드나 정보가 있다면 알려주세요! 👋🏻

0개의 댓글