문자열 붙여서 출력하기

현곤·2025년 5월 27일

문제 내용

두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.
입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.

입출력 예시

입력 #1

apple pen

출력 #1

applepen

입력 #2

Hello World!

출력 #2

HelloWorld!

문제 풀이

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String b = sc.next();
        System.out.println(a + b);
    }
}

간단하게 sout만 붙여줘서 풀었는데 어떤 방법이 있나 궁금해서
다른 사람의 풀이도 뒤져봤다

다른 사람의 풀이

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

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.print(br.readLine().replaceAll(" ", ""));
    }
}

버퍼리더를 사용해서 푸는 방법이 있었는데 이게 뭘까하고 짱짱클로드한테 물어보니?

BufferedReader vs Scanner 비교

  • 속도 차이

    • Scanner : 느림 (편의 기능이 많아서)

    • BufferedReader : 빠름 (단순하게 텍스트만 읽음)

  • 사용 방법

    // Scanner (느리지만 편함)
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt(); // 자동으로 int 변환
    String str = sc.next();
    
    // BufferedReader (빠르지만 번거롭다)
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int num = Integer.parseInt(br.readLine());	// 수동으로 변환
    String str = br.readLine();
  • 이게 왜 빨라?

    • Scanner 는 입력을 파싱하면서 여러 타입으로 변환하는 기능이 많음

    • BufferedReader 는 그냥 텍스트 한 줄씩만 읽어옴 (단순함)

  • 언제 써?

    • 백준: 대용량 입력 (10만개 이상) → BufferedReader 권장

    • 프로그래머스: 함수 형태라 상관없음

    • 코딩테스트: 시간 제한 빡빡하면 BufferedReader

profile
코딩하는 곤쪽이

0개의 댓글