본문 바로가기
Algorithm/Baekjoon

[백준] 2739번 : 구구단 - Java

by unknownomad 2022. 2. 17.

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()

 


출처 : https://st-lab.tistory.com/26

댓글