백준 크냐?

KIMYEONGJUN·2024년 12월 24일
0
post-thumbnail

문제

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

입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 두 정수가 주어진다.
두 수는 백만보다 작거나 같은 양의 정수이다.
입력의 마지막 줄에는 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();
    }
}

마무리

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

profile
Junior backend developer

0개의 댓글