백준 숫자

KIMYEONGJUN·2025년 1월 5일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

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

내가 이 문제를 보고 생각해본 부분

BufferedReader를 통해 표준 입력을 읽는다.
BufferedWriter를 통해 표준 출력을 작성한다.
StringTokenizer를 사용하여 입력된 문자열을 공백 기준으로 분리한다.
입력 값 파싱: 표준 입력에서 두 개의 정수 A와 B를 읽어 long 타입으로 변환하여 저장한다.
A와 B 비교 및 교환: A가 B보다 클 경우 두 값을 교환하여 항상 A가 B보다 작거나 같도록 한다.
수의 개수 계산: A와 B 사이에 있는 수의 개수를 계산한다.
A와 B가 같거나 인접한 경우(즉, 차이가 1 이하)에는 사이에 수가 없으므로 0을 출력한다.
사이에 있는 수 출력: A와 B 사이에 수가 있을 경우, B - A - 1을 계산하여 그 개수를 출력한다.
그 다음, A와 B 사이의 모든 정수를 차례로 BufferedWriter를 사용해 출력한다.
버퍼 비우기 및 닫기: bw.flush()를 호출하여 출력 스트림의 내용을 모두 기록하고, bw.close()와 br.close()를 통해 각각의 스트림을 닫는다.

코드로 구현

package baekjoon.baekjoon_25;

import java.io.*;
import java.util.StringTokenizer;

// 백준 10093번 문제
public class Main891 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        long A = Long.parseLong(st.nextToken());
        long B = Long.parseLong(st.nextToken());

        if(A > B) {
            long temp = A;
            A = B;
            B = temp;
        }

        /// 두 수 사이에 있는 수의 개수
        if(B - A <= 1) {
            bw.write("0\n");
        } else {
            bw.write((B - A - 1) + "\n");
            for(long i = A + 1; i < B; i++) {
                bw.write(i + " ");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글