내가 생각했을때 문제에서 원하는부분
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 두 정수가 주어진다.
두 수는 백만보다 작거나 같은 양의 정수이다.
입력의 마지막 줄에는 0이 두 개 주어진다.
각 테스트 케이스마다, 첫 번째 수가 두 번째 수보다 크면 Yes를, 아니면 No를 한 줄에 하나씩 출력한다.
내가 이 문제를 보고 생각해본 부분
BufferedReader를 이용해서 입력을 받는다.
StringBuilder를 선언해준다.
while 반복문을 사용해서 반복해준다.
그리고 사용자로부터 한 줄의 입력을 읽어준다.
입력된 줄을 공백으로 분리하여 StringTokenizer를 사용해 각각의 정수를 추출해준다.
N과 M에 첫 번째와 두 번째 정수가 저장한다.
종료 조건 확인:
두 정수가 모두 0이면 루프를 종료한다.
비교 및 결과 저장:
N이 M보다 크면 "Yes"를, 그렇지 않으면 "No"를 StringBuilder에 추가시켜준다.
그리고 StringBuilder에 저장된 모든 결과를 한 번에 출력해준다.
코드로 구현
package baekjoon.baekjoon_25;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
// 백준 4101번 문제
public class Main878 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while(true) {
String line = br.readLine(); // 한 줄의 입력을 읽음
StringTokenizer st = new StringTokenizer(line); // 읽은 줄을 공백으로 분리하여 StringTokenizer로 처리
int N = Integer.parseInt(st.nextToken()); // 첫 번째 정수 N
int M = Integer.parseInt(st.nextToken()); // 두 번째 정수 M
if(N == 0 && M == 0) { // 두 수가 모두 0이면 반복 종료
break;
}
// N이 M보다 크면 "Yes"를, 그렇지 않으면 "No"를 StringBuilder에 추가
if(N > M) {
sb.append("Yes\n"); // 결과에 추가
} else {
sb.append("No\n"); // 결과에 추가
}
}
System.out.print(sb.toString()); // 한 번에 출력
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.