알고리즘(백준 등) 공부

SWEA 12004. 구구단 1

posite 2026. 5. 27. 11:28

주어진 숫자 n이 1과 9 사이의 두 수 a, b의 곱으로 만들 수 있는지 확인하는 문제이다.

 

1부터 9까지 순회하면서 나누었을 때 나머지가 0이고 몫이 9 이하이면 가능하다. 그러한 경우가 없다면 불가능하다.

for(int i=1; i<=9; i++) {
    if(n % i != 0) continue;
    if(n / i <= 9) {
        sb.append("Yes").append('\n');
        continue outer;
    }
}

 

 

결과 코드는 다음과 같다.

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

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();

        outer : for (int tc = 1; tc <= T; tc++) {
            sb.append('#').append(tc).append(' ');
            int n = Integer.parseInt(br.readLine());
            for(int i=1; i<=9; i++) {
                if(n % i != 0) continue;
                if(n / i <= 9) {
                    sb.append("Yes").append('\n');
                    continue outer;
                }
            }
            sb.append("No").append('\n');
        }
        
        br.close();
        System.out.print(sb);
    }
}