Jakorithm
article thumbnail
728x90

문제

https://www.codetree.ai/training-field/search/problems/multiplication-table-in-order?&utm_source=clipboard&utm_medium=text

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

 

a와 b가 주어졌을 때, a단부터 b단까지 다음 포맷에 맞게 출력하는 프로그램을 작성해 주세요.

예로 a = 3, b = 4라면 출력결과는 다음과 같이 나와야 합니다.

3 * 1 = 3   4 * 1 = 4
3 * 2 = 6   4 * 2 = 8
3 * 3 = 9   4 * 3 = 12
3 * 4 = 12   4 * 4 = 16
3 * 5 = 15   4 * 5 = 20
3 * 6 = 18   4 * 6 = 24
3 * 7 = 21   4 * 7 = 28
3 * 8 = 24   4 * 8 = 32
3 * 9 = 27   4 * 9 = 36

 

a가 b보다 큰 경우도 있는데, 예로 a = 4, b = 3이라면 출력결과는 다음과 같이 나와야 합니다.

3 * 1 = 3   4 * 1 = 4
4 * 1 = 4   3 * 1 = 3
4 * 2 = 8   3 * 2 = 6
4 * 3 = 12   3 * 3 = 9
4 * 4 = 16   3 * 4 = 12
4 * 5 = 20   3 * 5 = 15
4 * 6 = 24   3 * 6 = 18
4 * 7 = 28   3 * 7 = 21
4 * 8 = 32   3 * 8 = 24
4 * 9 = 36   3 * 9 = 27

 

 

코드

첫 번째 줄에 a, b가 공백을 사이에 두고 주어진다.

  • 1 <= a, b <= 9
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        StringBuilder sb = new StringBuilder();
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        // 구구단 계산
        for (int i = 1; i <= 9; i++) {
            gugudan(a, b, sb, i);
            sb.append("\n");
        }

        System.out.println(sb);
    }

    private static void gugudan(int a, int b, StringBuilder sb, int i) {
        // a가 b보다 크면 역순으로 출력
        if (a > b) {
            for (int j = a; j >= b; j--) {
                sb.append(j).append(" * ").append(i).append(" = ").append(j * i).append("  ");
            }
        // b가 a보다 크면 순서대로 출력
        } else {
            for (int j = a; j <= b; j++) {
                sb.append(j).append(" * ").append(i).append(" = ").append(j * i).append("  ");
            }
        }
    }
}

 

728x90