내가 생각했을때 문제에서 원하는부분
두 정수 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();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.