백준 Fridge of Your Dreams

KIMYEONGJUN·2025년 1월 8일
post-thumbnail

문제

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

The first line of input gives n ≤ 1000, the number of test cases. Then follow n lines with positive numbers represented as 24-bit binary strings (0s and 1s).

For each number, output its decimal representation, without any leading zeros.

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

BufferedReader를 사용하여 시스템의 표준 입력을 읽는다. 그리고 InputStreamReader는 바이트 스트림을 문자 스트림으로 변환 해준다.
테스트 케이스 수 입력: 첫 번째 줄에서 테스트 케이스의 수 n을 읽고 정수로 변환한다.
StringBuilder 초기화: 결과를 효율적으로 저장할 StringBuilder 객체를 생성해준다.
StringBuilder는 문자열을 동적으로 조작할 수 있는 클래스이다.
반복문 시작: n만큼 반복하여 각 테스트 케이스를 돌려준다.
이진 문자열 입력: 각 테스트 케이스에서 24비트 이진 문자열을 읽어온다.
이진 문자열 변환: Long.parseLong 메소드를 사용하여 이진 문자열을 10진수로 변환한다.
두 번째 인자는 진법을 나타내며, 여기서는 2를 사용한다.
결과 추가: 변환된 10진수를 StringBuilder에 추가하고, 이어서 줄바꿈 문자를 추가해준다.
결과 출력: StringBuilder에 저장된 모든 결과를 한 번에 출력한다.

코드로 구현

package baekjoon.baekjoon_25;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 11104번 문제
public class Main894 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine()); // 테스트 케이스 수 입력
        StringBuilder sb = new StringBuilder(); // 결과를 저장할 StringBuilder

        for(int i = 0; i < n; i++) {
            String binaryString = br.readLine(); // 24비트 이진 문자열 입력
            long decimalValue = Long.parseLong(binaryString, 2); // 이진 문자열을 10진수로 변환
            sb.append(decimalValue).append("\n"); // 결과에 추가
        }

        System.out.print(sb.toString()); // 모든 결과를 한 번에 출력
        br.close();
    }
}

마무리

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

profile
Junior backend developer

0개의 댓글