백준/브론즈 탈출하기
[Java] 백준 10953 : A+B -6
정보통신 고심이
2023. 11. 23. 14:15
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. A와 B는 콤마(,)로 구분되어 있다. (0 < A, B < 10)
출력
각 테스트 케이스마다 A+B를 출력한다.
입력 예제
5
1,1
2,3
3,4
9,8
5,2
출력 예제
2
5
7
17
7
정답 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int T = sc.nextInt(); // 테스트 개수 입력 받음
// 테스트 케이스를 입력 받음
for(int i=0; i<T; i++){
String[] input = sc.next().split(","); // ,와 정수 분리 하기 위해 split 사용 (먼저 문자열 배열 선언 필요)
int A = Integer.parseInt(input[0]);
int B = Integer.parseInt(input[1]);
System.out.println(A+B);
}
sc.close();
}
}
더 나아가기
접근 방법
1. 테스트 개수 입력 받음
2. ,(콤마) 분리 필요 -> 문자열로 변환
3. 문자열을 다시 정수로 변환 필요
4. 변환된 정수를 다시 덧셈하여 출력
2번 과정에서 고민이 많았는데,
처음에는 문자열 배열 생성한 뒤 replace(",", "") 으로 ,(콤마)를 분리하는 방법으로 접근 해봤는데
예를 들어 1,1 -> 1 1로 바꾼다해도 이것을 다시 어떻게 덧셈 할지 고민이 됐다.
그리고 반복문 배열에서
String[] input = new String[T];
for(int i-0; i<T; i++){
String[i] input = sc.next();
}
이런식으로 선언해야 되나 싶었는데 일단 Java 문법에 맞지 않고
String[] input = new String[T];
for(int i-0; i<T; i++){
input[i] = sc.next();
}
이렇게 선언 하려고 하니까 split하는 것이 또 문제가 됐다.
split 메소드는 String[]를 반환하기 때문에, String[] 타입의 변수에 저장해야하기에
for(int i=0; i<T; i++){
String[] input = sc.next().split(",");
}
이렇게 문자열 배열을 선언하고
split 메소드를 String[]를 반환하게 함께 선언
반복문 변수 i는 단순히 반복문 횟수 count에 사용된다.