300x250
https://www.acmicpc.net/problem/11022
문제
유심있게 봐야할 점은
첫줄엔 테스트 케이스 T (몇번을 돌릴 것인지),
Case #T : A + B = C, 그리고 공백을 잘봐야한다. 공백을 추가 안해줘도 틀림으로 나옴*
풀이
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
int a;
int b;
int c;
StringTokenizer st; // StringTokenizer로 공백 분리
for(int i = 1; i <= T; i++) {
st = new StringTokenizer(br.readLine()," ");
a = Integer.parseInt(st.nextToken()); // nextToken 은 문자열로 반환
b = Integer.parseInt(st.nextToken());
c = a + b;
bw.write("Case #" + i + ": ");
bw.write(a + " + " + b + " = ");
bw.write(c + "\n");
}
br.close();
bw.flush();
bw.close();
}
}
Scanner , println 보다 속도가 빠른 Buffered 로 풀어 보았다.
BufferedReader 입력
BufferedWriter 출력
readLine() 으로 입력받아 연산함
readLine() 은 입력된 데이터를 한 행으로 읽기 때문에 공백으로 나누어 분리해주어야 한다.
그러므로 공백 분리는 StringTokenize 를 사용해 주면 된다.
StringTokenize st;
st = new StringTokenize(br.readLine()," ");
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
nextToken()은 문자열로 반환하기 때문에 Integer.parseInt() 를 사용해 주어서 int(정수형)으로 형변환 시켜주어야 한다.
풀이2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
int a,b,c;
for(int i = 1; i <= T; i++) {
a = sc.nextInt();
b = sc.nextInt();
c = a + b;
System.out.println("Case #" + i + ": " + a + " + " + b + " = " + c);
}
}
}
기본적인 풀이방법이다.
Scanner로 풀어본 문제이다.
300x250
'Progamming > BAEK JOON > 백준의 알고리즘' 카테고리의 다른 글
[백준] 11382번 : 꼬마 정민 - JAVA , 런타임오류 (0) | 2023.03.02 |
---|---|
[백준] 25314번 : 코딩은 체육과목 입니다 - JAVA ,BufferedReader, StringBuilder 사용 (0) | 2023.02.28 |
[백준] 15552번 : 빠른 A+B - JAVA, BufferedReader, BufferedWriter (1) | 2023.02.16 |
[백준] 8393번 : 합 - JAVA (0) | 2023.02.09 |
[백준] 10950번 : A+B -3 - JAVA (0) | 2023.02.08 |