https://www.acmicpc.net/problem/10950
10950번: A+B - 3
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제를 제대로 안읽는 버릇 ㅋ 입력에 문자 하나 있는걸 어떻게 출력에서 빼는지 이상한 생각을 하고있었다.
테스트 케이스 개수라고 말해줬는데..
🧩선 개념
1. 배열 char[ ] test3 = {'자','바'};
배열의 객체들은 같은 자료형이어야 한다.
배열의 선언과 생성
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 |
댓글