Notice
Recent Posts
Recent Comments
«   2024/09   »
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
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

백준[Java] 2739번 구구단 본문

IT/Java[백준]

백준[Java] 2739번 구구단

빌드이너프 2023. 2. 15. 14:15

https://www.acmicpc.net/problem/2739

 

2739번: 구구단

N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.

www.acmicpc.net

문제풀이 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가지가 있음

  1. 문자열이랑 혼합하여 사용하는 방법
  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