본문 바로가기
ONLINE JUDGE/제어문

[백준10950] A+B - 3

by W_W_Woody 2022. 1. 26.

https://www.acmicpc.net/problem/10950

 

10950번: A+B - 3

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net


문제를 제대로 안읽는 버릇 ㅋ 입력에 문자 하나 있는걸 어떻게 출력에서 빼는지 이상한 생각을 하고있었다.
테스트 케이스 개수라고 말해줬는데..

 

🧩선 개념

1. 배열   char[ ] test3 = {'자','바'};

[ Java ] 💻 1차원 배열

배열의 객체들은 같은 자료형이어야 한다.

배열의 선언과 생성

int it[] = new int[6]; //[] 위치는 둘 다 사용 가능하다.
int[] it = new int[6]; 
//길이가 6인 int타입 배열

배열의 선언과 생성 + 초기화

 - 명시적 배열 생성

char[] test2 = new char[] {'J','A','V','A'};
//char[] test2 = new char[4] {'J','A','V','A'};// 초기화 할 때는 자동 카운팅하므로 4 넣으면 에러난다

 - 암시적 배열 생성

char[] test3 = {'자','바'};

 

2. 확장 for문   for(타입 변수명 : 배열명or컬렉션) { }

3. StringBuilder  

[Java] 💻String과 StringBuffer,StringBuilder

                     

자바에서 String 객체는 변경 불가능하다. 한 번 생성되면 내용을 바꿀 수 없단 뜻이다. 따라서 하나의 문자열을 다른 문자열과 연결하면 새 문자열이 생성되고, 이전 문자열은 가비지 컬렉터로 들어간다.

Stirng은 변경 불가능한 문자열을 생성하지만 StringBuilder는 변경 가능한 문자열을 만들어 주기 때문에, String을 합치는 작업 시 하나의 대안이 될 수 있다.

 

간단한 사용법은 아래와 같다.

public class Main
{
    public static void main(String[] args)
    {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("문자열 ").append("연결");
//        String str = stringBuilder;   // String에 StringBuilder를 그대로 넣을 순 없다. toString()을 붙여야 한다
        String str = stringBuilder.toString();
        // 두 println()은 같은 값을 출력한다
        System.out.println(stringBuilder);
        System.out.println(str);
    }

}

먼저 StringBuilder의 객체를 생성한 후, append()의 인자로 연결하고자 하는 문자열을 넣어서 StringBuilder의 객체를 통해 호출한다. 그리고 출력 시에는 toString()을 붙여야 하고, String 변수에 넣을 때도 마찬가지다.


방법1. 배열 이용하기

package step3;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Day06_10950 {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

		int arr[] = new int[N]; // 테스트 케이스의 개수가 입력(N)되어, 배열의 길이가 N인 배열을 생성한다.

		for (int i = 0; i < N; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			int A = Integer.parseInt(st.nextToken());
			int B = Integer.parseInt(st.nextToken());
			arr[i] = A + B;
		}
		br.close();
		
		for(int sum : arr) {
			System.out.println(sum);
		}

	}

}

방법2. StringBuilder 이용하기

package step3;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Day06_10950_2 { // StringBuilder
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());

//		StringTokenizer st;
		StringBuilder sb = new StringBuilder();

		for (int i = 0; i < N; i++) { //반복횟수를 N으로 받았음
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			sb.append(Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()));
			sb.append("\n");
		}

		System.out.println(sb);

	}

}

 

'ONLINE JUDGE > 제어문' 카테고리의 다른 글

[백준2741/2742] N찍기/기찍N  (0) 2022.01.27
[백준8393] 합  (0) 2022.01.27
[백준2739] 구구단  (0) 2022.01.26
[백준2884] 알람 시계  (0) 2022.01.21
[백준1330] 두 수 비교하기  (0) 2022.01.13

댓글