https://www.acmicpc.net/problem/11022
정답
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
StringBuilder sb=new StringBuilder();
for(int i =1; i<=t;i++){
String str2 = br.readLine();
sb.append("Case #").append(i).append(": ")
.append(str2.charAt(0)).append(" + ")
.append(str2.charAt(2)).append(" = ")
.append((str2.charAt(0)-'0')+(str2.charAt(2)-'0'))
.append('\n') ;
}
System.out.print(sb);
}
}
풀이
- A와 B의 범위는 1~9 사이
⇒ 무조건 한 자릿수만 입력 받기 때문에 문자열로 입력 받을시 공백이 들어가는 위치는 언제나 고정되어있다.
- 그럼 문자열의 특정 위치의 문자를 반환해주는 charAt() 쓸 수 있다면 StringTokenzier 객체를 계속 생성하지 않아도 되기에 시간이 더욱 단축 될수 있다.
- String.charAt() 해당 위치의 문자를 char 반환한다
- 즉, 만약 0이라는 문자열이 반환되면 아스키 코드 값인 48이 반환된다.
이를 int형으로 연산하려고 하거나 문자 출력이 아닌 정소로 출력하려 하면 0 이라는 숫자가 아닌 48로 출력된다. - 그래서 '6'을 숫자 6으로 바꾸고 싶으면 -'0' 해야된다.
'JAVA > 백준' 카테고리의 다른 글
[Java11] 2439번 : 별 찍기 -2 (0) | 2024.09.11 |
---|---|
[Java11] 2438번 : 별 찍기 - 1 (0) | 2024.09.11 |
[Java11] 11021번 : A+B -7 (0) | 2024.09.11 |
[Java11] 15552번 : 빠른 A+B (0) | 2024.09.11 |
[Java11] 25314번 : 코딩은 체육과목 입니다. (0) | 2024.09.11 |