728x90
알고리즘의 가장 기본 입출력 알아보자
Scanner, Println등도 모르면서 알고리즘을 무작정 풀 수는 없는 노릇이고, 시간제한이 있는 문제의 경우에는 입출력에 소비되는 시간을 최소화해야함.
자바의 출력
- System.out.println()
- Java에서 가장 일반적인 출력, 줄바꿈이 된다
- System.out.print(...)
- println과 달리 줄바꿈이 안됨.
- System.out.printf(...)
- C언어의 printf와 흡사하게 사용
자바의 입력
Scanner (java.util.Scanner)
- next자료형을 이용해서 입력을 받을 수 있다.
- hasNext자료형을 이용해서 입력받을 수 있는 자료형이 있는지 구할 수 있다.
- Iterator를 Interface로 상속받기 때문에, Iterator에서 사용하는 메소드들을 사용할 수 있다.
import java.util.*;
public class Main { // 일반적인 알고리즘 문제 Main 클래스에 작성.
public static void main(String args[]) {
Scanner sc = new Scanner(System.in); // System.in을 Argument로 넣어 생성
// System.in은 System의 InputStream을 의미한다.
int a, b;
a = sc.nextInt();
b = sc.nextInt();
System.out.println(a + b);
}
}
정수가 아닌 입력을 받을때 동안 정수 더하여 출력
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int sum = 0;
while (sc.hasNextInt()) {
sum += sc.nextInt();
}
System.out.println(sum);
sc.close();
}
}
BufferedReader (java.io.BufferedReader)
- 입력이 많은 경우나 시간을 줄여야 할 때 BufferedReader를 사용하는 것이 빠르다.
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] line = bf.readLine().split(" ");
String a = line[0] + line[1];
String b = line[2] + line[3];
long ans = Long.valueOf(a) + Long.valueOf(b);
System.out.println(ans);
}
}
- BufferedReader는 read와 readLine이라는 메소드만 제공한다.
- BufferedReader는 Scanner와 다르게 여러가지 형태의 자료형을 받을 수 없다.
- 메소드에서 알 수 있듯 오직 문자열만 받을 수 있다.
StringBuilder
- StringBuilder는 출력해야 할 것이 많은 경우에 이용한다.
- 여러번 출력하는 것보다 StringBuilder를 이용해 문자열을 만들고 출력하는 것이 좋다.
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
StringBuilder sb = new StringBuilder();
for (int i=1; i<=n; i++) {
sb.append(i+"\n");
}
System.out.print(sb);
}
}
728x90
'Java & Spring' 카테고리의 다른 글
java int to char 형변환 (0) | 2021.08.15 |
---|---|
java Collection 프레임워크 정리 (0) | 2021.08.11 |
java array관련 함수 (0) | 2021.08.09 |
java string관련 함수정리 (0) | 2021.08.08 |
자바 parseInt vs valueOf 차이 (0) | 2021.08.07 |