▶ 문제
https://www.acmicpc.net/problem/10950
10950번: A+B - 3
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
▶ 설명
덧셈을 할 두 수를 입력 받을 때 반복문을 이용해서 연산까지 하는 코드를 작성하여야 한다.
▶ 문제 풀이
🌱 풀이1.
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));
StringBuilder sb = new StringBuilder();
int count = Integer.parseInt(br.readLine());
String str = "";
StringTokenizer strTo;
for (int i=0; i<count; i++) {
str = br.readLine();
strTo = new StringTokenizer(str, " ");
int num1 = Integer.parseInt(strTo.nextToken());
int num2 = Integer.parseInt(strTo.nextToken());
sb.append((num1+num2) + "\n");
}
System.out.println(sb);
}
}
StringBuilder sb = new StringBuilder(); 여러번의 데이터를 출력해야 할 때는 단연코 System.out.println( ) 보다 StringBuilder 클래스를 이용하는 편이어서 초반부에 먼저 선언을 한다.
int count = Integer.parseInt(br.readLine()); 연산 횟수를 미리 정하기 위해 count 번수에 readLine( ) 를 이용해 입력을 받고, 정수로 형변환을 해준다.
String str = ""; StringTokenizer strTo; for 문에 사용할 변수 String, StringTokenizer 형을 for문 전에 미리 선언하여서 for 문에서 반복적으로 불필요하게 인스턴스 하지 않도록 한다.
for( ) { } 연산될 두 수를 입력 받으면 공백문자를 기준으로 문자를 나누어 정수형으로 파싱하고 연산한 뒤 append( ) 메소드로 출력을 위해 담도록 한다.
▶ Log
처음엔 입력받을 값들을 배열로 받을까 했었다. 그런데 그 다음으로는 어떻게 진행해야 할지 모르겠어서 다시 머리를 리셋한 후에 생각해봤는데 의외로 단순하게 내가 썼던 클래스와 메소드로도 for문을 돌리면 가능할 것 같다는 느낌이 들었고, 차근히 생각한 대로 코드를 만들어보니 쉽게 구현해낼 수 있었다.
잘 안되는 문제가 있으면 한참 다른 걸 하면서 쉬거나 하루나 이틀 뒤에 다시 문제를 풀면 잘 해결될 수 있다는 걸 깨달았다.
교훈 요약 : 잘 안되면 잠깐 쉬고 다시 하기.
이 문제는 연산하는 것 보다도 StringTokenizer를 언제 어떻게 쓰는지 익숙해지라는 문제같았다.
BufferReader나 StringBuilder 등의 사용으로 코드가 길어져서 Scanner 보다는 확실히 복잡해 보이지만
계속 쓰다보니 친숙해지는 것 같다.
'백준 알고리즘 > 반복문' 카테고리의 다른 글
백준 2742 :: 기찍 N (0) | 2022.05.23 |
---|---|
백준 2741번 :: N 찍기 (0) | 2022.05.23 |
백준 15552번 :: 빠른 A+B (0) | 2022.05.22 |
백준 8393번 :: 합 (0) | 2022.05.22 |
백준 2739번 :: 구구단 (0) | 2022.05.20 |