[BaekJoon] 2739번 - 구구단 (java)
1. 문제
👉 문제 바로가기
- 조건
시간 제한 | 메모리 제한 |
---|---|
1초 | 128MB |
- 문제
N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.
- 입력
첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.
- 출력
출력형식과 같게 N*1부터 N*9까지 출력한다.
- 예제
입력 | 출력 |
---|---|
2 | 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 |
2. 풀이
반복문 for
를 사용해 구구단을 출력한다.
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문 작성;
}
2가지의 입력 / 출력 방식을 사용해서 결과를 출력한다.
- 입력
- Scanner 클래스
- BufferedReader 클래스
- 출력
- System.out.println()
- BufferedWriter 클래스
- 1. Scanner 클래스 / System.out.println()
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
for(int i=1;i<=9;i++){
System.out.println(A + " * " + i + " = " +A*i);
}
}
}
위와같이 객체를 생성할 때, Scanner(System.in) 에서
System.in
은 입력한 값을Byte 단위
로 읽는 것을 뜻한다.
int형 데이터를 입력받기 위해
nextInt()
메서드를 사용한다.
위의 예제 출력을 보면 문자 사이에
공백
이 있다. 빠뜨리지 않도록 주의하자!
[여기서 잠깐!]
- 2. 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));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int A = Integer.parseInt(br.readLine());
for (int i = 1; i <= 9; i++) {
bw.write(A + " * " + i + " = " + A*i);
bw.newLine();
}
bw.flush();
bw.close();
}
}
readLine()
은 한 줄을 통째로 읽어 String으로 반환하기 때문에Integer.parseInt()
을 사용해int형으로 변환
시켜준다.
BufferedWriter 클래스의
write()
메서드를 사용해 버퍼에 출력값을 저장하고,flush()
메서드로 버퍼를 비우고 한번에 출력한다.
newLine()
메서드로 개행(Enter)을 한다. 또는 write() 안에서 맨 뒤에"\n"
을 붙여도 된다.
[여기서 잠깐!]
BufferedReader/BufferedWriter 클래스
에 대해 더 알아보고 싶으면 여기 를 클릭하면 된다.3. Scanner VS BufferedReader 성능 비교
위에서 부터 순서대로
- BufferedReader + System.out.println()(표준 출력)
- BufferedReader + BufferedWriter
- Scanner + System.out.println()(표준 출력)
- Scanner + BufferedWriter
이 문제는 출력할 데이터가 많지 않아 출력 방식 간에는 큰 차이가 없어 보인다.
입력의 경우 확실히 Scanner 보다는 BufferedReader 가 빠른 것을 볼 수 있다.
관련 페이지
Leave a comment