JAVA : BufferedReader & BufferedWriter
JAVA 2021. 1. 14. 02:24

BufferedReader & BufferedWriter는 buffer를 이용하여 읽고 쓴다. 사용법이 다소 번거롭지만, 빠른 입출력이 가능하여 알고리즘의 효율성을 높일 수 있다. Scanner BufferedReader - 키보드 입력시 바로 프로그램으로 전달 - Space 또는 Enter를 경계로 입력값 구분 - 키보드를 입력하면 한 문자씩 버퍼로 전달하다가 버퍼의 크기가 차거나 개행문자(\n)를 만나면 프로그램으로 전달 - 받는 타입이 String으로 고정 - 예외 처리 필수 BufferedWriter의 경우 꼭 flush와 close를 함께 사용해주어야 한다. .flush() : 버퍼 내 남아있는 모든 데이터 출력 .close() : 해당 버퍼를 더 이상 사용하지 않겠다는 뜻 -> 스트림 닫음 S..

JAVA : String 또는 Char의 int 타입 변환
JAVA 2021. 1. 13. 03:37

: int num = Integer.parseInt(String 타입 변수); import java.util.Scanner; public class Main { public static void main(String[] args){ String numbers = "1234"; int one = Integer.parseInt(numbers); System.out.println("one : " + one); } } : int two = Character.getNumericValue(Char 타입 변수); import java.util.Scanner; public class Main { public static void main..

JAVA : Scanner로 문자 입력 (Char 타입)
JAVA 2021. 1. 12. 04:40

Scanner에서 문자를 바로 입력받는 기능은 없다. 그렇지만 next()로 문자열을 입력받아 charAt(0)으로 첫번째 문자를 받아 올 수 있다. 이를 실행하는 두가지 코드가 있다. Scanner sc = new Scanner(System.in); char word = sc.next().charAt(0); Scanner sc = new Scanner(System.in); String str = sc.next(); char word = str.charAt(0);

JAVA : System.out & StringBuilder
JAVA 2021. 1. 8. 23:56

system.out 대신 StringBuilder를 이용하여 알고리즘 시간 초과 문제를 개선할 수 있다. System.out.println() 표준 입출력 기능 내부적으로 동기화 처리가 되어있다. 즉, 작업 중인 스레드가 있을 때, 다른 스레드는 대기 시간이 발생한다. 이로 인해 오버 헤드가 발생 할 수 있다. -> 오버헤드가 쌓여 성능 저하 발생 public class Main { public static void main(String[] args){ for(int i =1;i

JAVA : StringBuilder & Scanner
JAVA 2021. 1. 8. 23:20

알고리즘 문제를 풀 때, 시간 초과로 인한 문제가 발생할 수 있다. 이때, Scanner 대신 StringBuilder를 사용하면 소요 시간을 단축할 수 있다. Scanner java.util.Scanner 클래스 읽은 데이터 파싱 가능 IOexception 던짐X 버퍼 사이즈 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); System.out.println(N); } } StringBuilder java.io.BufferedReader 클래스 파싱 불가능 -> 모두 텍스트로 읽음 (string으..