정보
분류 : 반복문
문제
풀이
- 풀이 1 ( Scanner + println() + List ) → 228ms
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List <Integer> arr = new ArrayList<Integer>();
while (true){
int a = sc.nextInt();
int b = sc.nextInt();
if(a + b == 0) {
break;
}
arr.add(a + b);
};
for(Integer j : arr) {
System.out.println(j);
};
}
}
- 풀이 2 ( Scanner + println() ) → 228ms
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
while(true) {
int a = sc.nextInt();
int b = sc.nextInt();
if(a == 0 && b == 0) {
break;
}
System.out.println(a + b);
}
}
}
- 풀이 3 ( BufferedReader + BufferedWriter + StringTokenizer ) → 148ms
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// InputStream : 자바의 가장 기본이 되는 입력 스트림
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// OutputStreamWriter : 자바의 가장 기본이 되는 출력 스트림
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer str;
while(true) {
str = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(str.nextToken());
int B = Integer.parseInt(str.nextToken());
if(A + B == 0) {
break;
}
bw.write( (A + B) + " \n");
}
br.close();
bw.flush();
bw.close();
}
}
풀이 후기
bw.write( A + B )으로 결과값 확인했더니 무슨 이상한 부호만 다섯개 달랑 나오길래 한참 멍했었다.
혹시 몰라서 " \n"을 추가해서 출력 해봤더니 결과값이 제대로 나온다. 흠..?🤔
해당 문제는 List 컬렉션과 StringTokenizer 클래스를 사용해보았다. for문에 조금 익숙해진 나는 무의식적으로 for문을 적었는데 for문의 조건식을 어떻게 적어야할지 모르겠어서 while문을 사용했다. A와 B의 합이 0일 경우이거나 A, B 둘 다 0일 때 break를 통해 while문을 종료시켰다.
'💡문제 풀이 > 백준 - JAVA' 카테고리의 다른 글
개수 세기 / 10807 (0) | 2023.11.20 |
---|---|
A+B - 4 / 10951 (1) | 2023.11.17 |
별 찍기 - 2 / 2439 (0) | 2023.11.17 |
별 찍기 - 1 / 2438 (0) | 2023.11.17 |
A+B - 8 / 11022 (0) | 2023.11.16 |