알고리즘 문제풀이/Beakjoon

[자바/백준] 단계별 문제 풀이 - for문

joah.k 2021. 6. 20. 01:33
728x90

 

1 2739번 구구단
import java.util.Scanner;

public class step03_1 {
    public static void main(String[] args) {
        //2739번. 구구단
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.close();

        for(int i=0; i<10 ; i++){
            if(n>=1&& n<=9 && i>0){
                System.out.println(n + " * " + i + " = " + n*i);
            }
          }
        }
    }

 

 

2 10950번 A+B - 3
import java.util.Scanner;

public class step03_2_a {
    public static void main(String[] args) {
        //10950번. A+B-3

        Scanner sc = new Scanner(System.in);

        int t = sc.nextInt();

        for(int i=0; i<t; i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();

            System.out.println(a+b);
        }

        sc.close();
    }
}

 

아래는 성능을 더 좋게 만들기 위한 방법.

아직 BufferedReader 나 StringTokenizer가 익숙하지 않아서 

다른 사람의 블로그를 참고했다. 

이게 정답에 가까울 듯 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class step03_2_b {
    public static void main(String[] args) throws IOException {
        //10950번. A+B-3
        // 더 나은 성능을 위한 방법 (출처 : https://st-lab.tistory.com/28)
        // BufferedReader은 문자열로 받아들이게 되는데 우리가 원하는 건 한 줄에 정수 2개이니
        // 공백을 기준으로 문자열을 분리해주어야 한다.

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());  // 몇 번 돌릴거냐

        StringTokenizer st; // split() 메소드보다 성능이 더 좋다!
        StringBuilder sb = new StringBuilder();
        // 배열을 따로 생성하여 저장했다가 다시 출력하는 방식보다는
        // StringBuilder 에 계산한 식을 넣어준 뒤 나중에 한 번에 출력해주는 방식

        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine(), " "); // 공백을 기준으로 나눌 것
            sb.append(Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()));
            sb.append('\n');
        }

        System.out.println(sb);
    }
}

 

3 8393번
import java.util.Scanner;

public class step03_3 {
    public static void main(String[] args) {
        // 8393번. 합
        // n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.close();

        if(n>=1 && n<=10000) {
            int sum = 0;
            for (int i = 1; i <= n; i++) {
                sum += i;
            }
            System.out.println(sum);
        }
    }
}

 

 

오늘은 여기까지! 

728x90