코딩테스트/JAVA
[ 백준 ] 11021(2)번 : A + B - 7(8) _ JAVA
어서오시우
2023. 11. 28. 20:49
728x90
문제
내 풀이
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
int sum[] = new int[T];
for (int i = 0; i < T; i++) {
String st = br.readLine();
String tokens[] = st.split(" ");
sum[i] = Integer.parseInt(tokens[0]) + Integer.parseInt(tokens[1]);
bw.write(String.format("case #%d: %d\n", (i+1),sum[i]));
}
bw.flush();
bw.close();
br.close();
}
}
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
int sum[] = new int[T];
for (int i = 0; i < T; i++) {
String st = br.readLine();
String tokens[] = st.split(" ");
sum[i] = Integer.parseInt(tokens[0]) + Integer.parseInt(tokens[1]);
bw.write(String.format("case #%d: %d\n", (i+1),sum[i]));
}
bw.flush();
bw.close();
br.close();
}
}
- String.format
- 문자열 결합에서 + 대신에 String.format을 사용하면 가독성이 더 좋아진다.
- String.format은 지정된 형식과 값을 사용하여 문자열을 생성하는 메서드이다.
- 형식 지정자
- %d : 정수
- %f : 부동 소수점 숫자
- %.2f와 같이 사용하여 소수점 2자리까지 출력하는 등 원하는 소수점 자릿수까지 출력 가능하다.
- %s : 문자열
- %c : 문자
- %b : boolean
- 이 문제를 풀면서 들었던 의문이 있다.
bw.write(sum[i])를 형변환 없이 출력할 경우 원하는 int 자료형의 sum 값이 출력되는 것이 아닌
이상한 문자가 출력되는 것을 볼 수 있었다.
그런데 위와 같이 String.format( ) 을 사용할 경우 sum[i] 의 값도 내가 출력하고자 하는 값이 출력된다.- String.format 은 문자열을 형식화하기 위한 메서드로, 내부적으로 문자열을 생성한 후 반환한다.
따라서 sum[i]가 int형태이더라도 String.format을 사용하여 형식화된 문자열로 변환되어 출력되는 것이다.
즉 bw.write에는 문자열로 전달되기 때문에 sum[i] 값이 정상적으로 출력된다. - 결국 String.format을 사용하면 내부에서 자동으로 int를 문자열로 변환해주기 때문에 명시적으로 변환할 필요가 없다.
- String.format 은 문자열을 형식화하기 위한 메서드로, 내부적으로 문자열을 생성한 후 반환한다.
문제
내 풀이
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
int[] A = new int[T];
int[] B = new int[T];
int[] sum = new int[T];
for (int i = 0; i < T; i++) {
String st = br.readLine();
String tokens[] = st.split(" ");
A[i] = Integer.parseInt(tokens[0]);
B[i] = Integer.parseInt(tokens[1]);
sum[i] = A[i] + B[i];
bw.write(String.format("Case #%d: %d + %d = %d\n", (i + 1), A[i], B[i], sum[i]));
}
bw.flush();
bw.close();
br.close();
}
}
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
int[] A = new int[T];
int[] B = new int[T];
int[] sum = new int[T];
for (int i = 0; i < T; i++) {
String st = br.readLine();
String tokens[] = st.split(" ");
A[i] = Integer.parseInt(tokens[0]);
B[i] = Integer.parseInt(tokens[1]);
sum[i] = A[i] + B[i];
bw.write(String.format("Case #%d: %d + %d = %d\n", (i + 1), A[i], B[i], sum[i]));
}
bw.flush();
bw.close();
br.close();
}
}
- 위 응용버전 기록용