충분히 쌓여가는
백준[Java] 2739번 구구단 본문
https://www.acmicpc.net/problem/2739
문제풀이 1
import java.util.Scanner;
public class _2739_1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.close();
for (int i = 1; i < 10; i++) {
System.out.printf("%d * %d = %d%n", N, i, N*i);
}
}
}
기초적인 Scanner 사용
문제풀이 2
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _2739_2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
br.close();
for (int i = 1; i < 10; i++) {
System.out.printf("%d * %d = %d%n", N, i, N*i);
}
}
}
BufferedReader 사용
Scanner보다 BufferedReader 이 성능이 좋다
Integer.parseInt()로 int 형으로 변환시켜 줌
문제풀이 3
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _2739_3 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
br.close();
StringBuilder sb = new StringBuilder();
for (int i = 1; i < 10; i++) {
sb.append(N).append(' ').append('*').append(' ').append(i);
sb.append(' ').append('=').append(' ').append(N*i).append('\n');
}
System.out.println(sb);
}
}
StringBuilder 사용
sb.append(a+" * "+i+" = "+a*i+"\n"); 으로 한번에 넣어주는 것보다, 위와 같이 문자를 하나씩 append 해주는 것이 속도가 조금 더 빠른 것으로 나옴
문제 풀이방법 중 가장 성능이 좋았다
문제풀이 4
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class _2739_4 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
br.close();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for (int i = 1; i < 10; i++) {
bw.write(N+" * "+i+" = "+N*i+"\n");
}
bw.flush();
bw.close();
}
}
BufferedWriter 사용
BufferedWriter 는 int형 변수만 따로 써도 int값으로 나오지 않는다 해결 방법으로 2가지가 있음
- 문자열이랑 혼합하여 사용하는 방법
- int값을 String으로 변환
'IT > Java[백준]' 카테고리의 다른 글
백준[Java] 8393번 합 (0) | 2023.02.16 |
---|---|
백준[Java] 10950번 A+B-3 (0) | 2023.02.15 |
백준[Java] 2480번 주사위 세개 (0) | 2023.02.15 |
백준[Java] 2525번 오븐 시계 (2) | 2023.02.14 |
백준[Java] 2884번 알람 시계 (0) | 2023.02.14 |