반응형
접근 방법)
해당 핵심 포인트는 입력 값이 더 이상 주어지지 않을 때까지 A와 B의 합을 출력하는 반복을 어떻게 만들 것인지가 중요하다.
▷ Scanner를 이용
Scanner에서 더 이상 데이터가 존재하지 않을 때 NoSuchElementException 경고가 나타나며 hasNext() 메소드를 사용해 처리할 수 있다.
Scanner s = new Scanner(System.in);
while(s.hasNextInt()){ --- }
▷ BufferedReader를 이용
BufferedReader는 더 이상 데이터가 존재하지 않을 때 null을 반환한다.
그래서 while((str = br.readLine()) != null){ --- } 이 코드를 사용하여 처리할 수 있다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while((str = br.readLine()) != null){ --- }
br.readLine() 메소드는 라인 단위로 읽어들이기 때문에 다음 라인의 String이 없을 경우 null을 반환하게 된다
정답 코드 1)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
while(s.hasNextInt()){
int a = s.nextInt();
int b = s.nextInt();
System.out.println(a+b);
}
}
}
s.hasNextInt()를 통해 false를 반환할 때까지 a+b값을 계속 출력해준다.
정답 코드 2)
import java.io.*;
import java.util.StringTokenizer;
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));
StringTokenizer st;
String str;
while((str = br.readLine()) != null){
st = new StringTokenizer(str);
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = a+b;
bw.write(c+"\n");
}
br.close();
bw.flush();
bw.close();
}
}
(str = br.readLine())에 데이터가 없어 null 반환하여 while문이 끝날 때 까지 반복문을 수행한다.
그리고 nextToken() 메소드로 숫자 하나 하나 변수에 입력받아 a+b를 출력해주면 된다.
반응형
'Baekjoon 자바 코드 > 반복문' 카테고리의 다른 글
[백준] 10952번 A+B - 5 풀이 코드 (Java 자바) (0) | 2024.07.01 |
---|---|
[백준] 2439번 별 찍기 - 2 풀이 코드 (Java 자바) (0) | 2024.07.01 |
[백준] 2438번 별 찍기 - 1 풀이 코드 (Java 자바) (0) | 2024.06.28 |
[백준] 11022번 A+B-8 풀이 코드 (Java 자바) (0) | 2024.06.26 |
[백준] 11021번 A+B-7 풀이 코드 (Java 자바) (0) | 2024.06.26 |