👉🏻 주의점
- 입력은 공백으로 구분하여 주어짐
- 나눗셈 (A/B)의 결과는 몫만 반환
👉🏻 풀이 방법1) Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int A = in.nextInt();
int B = in.nextInt();
in.close();
System.out.println(A+B);
System.out.println(A-B);
System.out.println(A*B);
System.out.println(A/B);
System.out.println(A%B);
}
}
👉🏻 풀이 방법2) Scanner - StringBuilder
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int A = in.nextInt();
int B = in.nextInt();
in.close();
StringBuilder sb = new StringBuilder();
sb.append(A+B);
sb.append('\n');
sb.append(A-B);
sb.append('\n');
sb.append(A*B);
sb.append('\n');
sb.append(A/B);
sb.append('\n');
sb.append(A%B);
System.out.println(sb);
}
}
StringBuilder를 생성하여 하나의 문자열로 연결 해 준 다음 한번에 출력하는 방법이다.
👉🏻 풀이 방법 3) Scanner - BufferedWriter
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
int A = in.nextInt();
int B = in.nextInt();
in.close();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write((A+B) + "\n");
bw.write((A-B) + "\n");
bw.write((A*B) + "\n");
bw.write((A/B) + "\n");
bw.write((A%B) + "\n");
bw.flush();
bw.close();
}
}
버퍼에 문자열을 담아둔 뒤 한번에 출력한다.
위의 결과보다 더 시간을 단축 시키려면 Scanner 입력방식이 아닌 BufferedReader 입력 방식으로 해야된다.
👉🏻 풀이방법 4) BufferedReader - StringTokenizer ( 출력방식 System.out.println() )
BufferedReader는 Scanner 입력방식보다 훨씬 빠르다.
한 줄로 입력되어 공백 단위로 구별해주어야 하기 때문에 readLine()을 통해 입력 받아야 한다.
readLine()은 한 행을 전부 읽기 때문에 공백단위로 입력해 준 문자열을 공백단위로 분리해주어야 문제를 풀 수 있다.
StringTokenizer는 문자열을 반환하기에 반환되는 값을 Integer.parseInt()로 형변환 시켜준다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
System.out.println(A+B);
System.out.println(A-B);
System.out.println(A*B);
System.out.println(A/B);
System.out.println(A%B);
/*
굳이 String 변수 생성하지 않고 입력과 동시에 구분자로 분리해도 됨
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
System.out.println(A+B);
System.out.println(A-B);
System.out.println(A*B);
System.out.println(A/B);
System.out.println(A%B);
*/
}
}
👉🏻 풀이방법 4) BufferedReader - StringTokenizer ( 출력 방식 : StringBuilder )
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
sb.append(A+B);
sb.append('\n');
sb.append(A-B);
sb.append('\n');
sb.append(A*B);
sb.append('\n');
sb.append(A/B);
sb.append('\n');
sb.append(A%B);
System.out.println(sb);
/*
굳이 String 변수 생성하지 않고 입력과 동시에 구분자로 분리해도 됨
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
sb.append(A+B);
sb.append('\n');
sb.append(A-B);
sb.append('\n');
sb.append(A*B);
sb.append('\n');
sb.append(A/B);
sb.append('\n');
sb.append(A%B);
System.out.println(sb);
*/
}
}
👉🏻 풀이방법 4) BufferedReader - StringTokenizer ( 출력 방식 : BufferedWriter )
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write((A+B) + "\n");
bw.write((A-B) + "\n");
bw.write((A*B) + "\n");
bw.write((A/B) + "\n");
bw.write((A%B) + "\n");
bw.flush();
bw.close();
/*
굳이 String 변수 생성하지 않고 입력과 동시에 구분자로 분리해도 됨
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write((A+B) + "\n");
bw.write((A-B) + "\n");
bw.write((A*B) + "\n");
bw.write((A/B) + "\n");
bw.write((A%B) + "\n");
bw.flush();
bw.close();
*/
}
}
👉🏻 풀이방법 5) BufferedReader - split(" ") (출력방식 : System.out.println() )
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));
String[] str = br.readLine().split(" ");
int A = Integer.parseInt(str[0]);
int B = Integer.parseInt(str[1]);
System.out.println(A+B);
System.out.println(A-B);
System.out.println(A*B);
System.out.println(A/B);
System.out.println(A%B);
}
}
👉🏻 풀이방법 5) BufferedReader - split(" ") (출력방식 : StringBuilder)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
int A = Integer.parseInt(str[0]);
int B = Integer.parseInt(str[1]);
StringBuilder sb = new StringBuilder();
sb.append(A+B);
sb.append('\n');
sb.append(A-B);
sb.append('\n');
sb.append(A*B);
sb.append('\n');
sb.append(A/B);
sb.append('\n');
sb.append(A%B);
System.out.print(sb);
}
}
👉🏻 풀이방법 5) BufferedReader - split(" ") (출력방식 : BufferedWriter)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
int A = Integer.parseInt(str[0]);
int B = Integer.parseInt(str[1]);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write((A+B) + "\n");
bw.write((A-B) + "\n");
bw.write((A*B) + "\n");
bw.write((A/B) + "\n");
bw.write((A%B) + "\n");
bw.flush();
bw.close();
}
}
알고리즘 문제 풀 때 대부분 BufferedReader를 사용하고
출력은 데이터가 많은 경우 거의 StringBuilder와 BufferedWriter 두개를 쓴다.
(출력 데이터가 적은경우 손해임 - 상황을 보고 쓰면 됨)
Uploaded by Notion2Tistory v1.1.0