백준 Fridge of Your Dreams

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

관련 채용 정보