Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 자료형
- 인스턴스
- 예외 처리
- Java
- throws
- 자바
- 개발자
- node.js
- 다형성
- 문자 단위 스트림
- try-catch
- 바이트 단위 스트림
- 코린이
- ArrayList
- FileInputStream
- 졸리다
- 배열
- SSR
- exception
- 보조 스트림
- 변수
- 백엔드
- 새벽공부
- 파이팅
- MPA
- 코딩
- 초보개발자
- 메서드
- 인터페이스
- 상속
Archives
- Today
- Total
SHUSTORY
[ 백준 ] 11021(2)번 : A + B - 7(8) _ JAVA 본문
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();
}
}
- 위 응용버전 기록용
'코딩테스트 > JAVA' 카테고리의 다른 글
[ 백준 ] 10952번 : A + B - 5 _ JAVA (0) | 2023.11.29 |
---|---|
[ 백준 ] 2439번 : 별 찍기 - 2 _ JAVA (0) | 2023.11.29 |
[ 백준 ] 15552번 : 빠른 A + B _ JAVA (0) | 2023.11.28 |
[ 백준 ] 10950번 : A + B - 3 _ JAVA (1) | 2023.11.28 |
[ 백준 ] 2739번 : 구구단 _ JAVA (0) | 2023.11.27 |