백준 숫자

KIMYEONGJUN·2025년 1월 5일
0
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개의 댓글

관련 채용 정보