문제 내용
두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.
입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.
입출력 예시
apple pen
applepen
Hello World!
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(" ", ""));
}
}
버퍼리더를 사용해서 푸는 방법이 있었는데 이게 뭘까하고 짱짱클로드한테 물어보니?
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