백준 알고리즘/반복문

백준 10950번 :: A+B -3

Sun720 2022. 5. 21. 23:37

▶ 문제

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 보다는 확실히 복잡해 보이지만

계속 쓰다보니 친숙해지는 것 같다.

728x90
반응형

'백준 알고리즘 > 반복문' 카테고리의 다른 글

백준 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