https://www.acmicpc.net/problem/2739
2739번: 구구단
N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.
www.acmicpc.net
입력 방식
1. Scanner
2. BufferedReader
2.1. 문자열 받는 대표적인 방법
- read(): 한 문자만 읽어오기
- readLine(): 한 행 읽어오기(사용 권장)
- readLine()은 한 행을 전부 읽기에 공백 단위로 입력해준 문자열을 다시 공백 단위로 분리해줘야 함
2.2. 문자열 분리 방법
2.2.1. StringTokenizer 클래스
- split()보다 성능 좋음(단순 규칙으로 문자열 분리하거나 데이터가 더 많아질 때 추천)
2.2.2. split()
2.3. 형변환 주의점
- StringTokenizer 클래스와 split() 모두 문자열을 반환하기에 자료형 타입 확인 후 형변환 유의하기
- double형으로 풀면 나머지가 정수로 나와도 소수점까지 같이 출력되어 오답으로 처리됨
출력 방식
1. StringBuilder()
2. BufferedWriter()
2.1. 주의점 : 형변환
- int형 변수만 사용해도 int 값으로 나오지 않기에 형변환 필요
2.2. 형변환 방법
- int를 문자열과 혼합
- int ➡ String으로 형변환
풀이
1. Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int A = in.nextInt();
in.close();
for(int i = 1; i < 10; i++) {
System.out.println(A + " * " + i + " = " + (A * i));
}
}
}
2. BufferedReader
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int A = Integer.parseInt(br.readLine());
br.close();
for(int i = 1; i < 10; i++) {
System.out.println(A + " * " + i + " = " + (A * i));
}
}
}
3. BufferedReader + StringBuilder
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int A = Integer.parseInt(br.readLine());
br.close();
StringBuilder sb = new StringBuilder();
for(int i = 1; i < 10; i++) {
sb.append(A).append(' ').append('*').append(' ').append(i);
sb.append(' ').append('=').append(' ').append(A * i).append('\n');
}
System.out.print(sb);
}
}
4. BufferedReader + BufferedWriter
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int A = Integer.parseInt(br.readLine());
br.close();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for(int i = 1; i < 10; i++) {
bw.write(A + " * " + i + " = " + A * i + "\n");
}
bw.flush();
bw.close();
}
}
성능
- BufferedReader > Scanner
- BufferedWriter / StringBuilder > System.out.println()
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 8393번 : 합 - Java (0) | 2022.02.18 |
---|---|
[백준] 10950번 : A + B - 3 - Java (0) | 2022.02.18 |
[백준] 2480번 : 주사위 세 개 - Java (0) | 2022.02.17 |
[백준] 2884번 : 알람 시계 - Java (0) | 2022.02.16 |
[백준] 14681번: 사분면 고르기 - Java (0) | 2022.02.15 |
댓글