알고리즘/문제

[백준] 25494번 문제 - JAVA

Retro Rat 2026. 3. 8. 00:41

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

[문제]


[해설]

1. 문제 이해

이 문제는 세 정수 a, b, c가 주어졌을 때 다음 조건을 만족하는 (q, w, e) 조합의 개수를 구하는 문제입니다.

조건은 다음과 같습니다.

위 범위에서 세 수를 선택했을 때 다음 조건을 만족해야 합니다.

즉, 세 개의 나머지 연산 결과가 모두 같아야 합니다.

 

예를 들어

q = 2
w = 3
e = 4

이라면

q % w = 2 % 3 = 2
w % e = 3 % 4 = 3
e % q = 4 % 2 = 0

세 값이 서로 다르므로 조건을 만족하지 않습니다.

따라서 문제는 가능한 모든 (q, w, e) 조합을 탐색하면서 세 나머지 값이 같은 경우의 개수를 세는 것입니다.

또한 입력의 첫 줄에는 테스트 케이스 개수 T가 주어지기 때문에, 각 테스트 케이스마다 위 과정을 반복하여 결과를 출력해야 합니다.

 

2. 핵심 아이디어

이 문제의 핵심은 가능한 모든 경우를 직접 확인하는 완전 탐색(Brute Force) 입니다.

세 변수 q, w, e의 범위가 각각

더보기
더보기

1 ~ a
1 ~ b
1 ~ c

이므로, 세 개의 반복문을 사용하여 모든 조합을 확인할 수 있습니다.

구조는 다음과 같습니다.

더보기
더보기

q를 1부터 a까지 반복
    w를 1부터 b까지 반복
        e를 1부터 c까지 반복
            세 나머지 값을 계산
            조건이 같으면 카운트 증가


[코드]

public static void main(String[] args) {
        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();
            int c = sc.nextInt();

            int cnt = 0;
            for (int q=1; q<=a; q++) {
                for (int w=1; w<=b; w++) {
                    for (int e=1; e<=c; e++) {
                        int tmp1 = (q%w);
                        int tmp2 = (w%e);
                        int tmp3 = (e%q);

                        if ((tmp1 == tmp3) && (tmp2 == tmp3)) {
                            cnt++;
                        }
                    }
                }
            }

            System.out.println(cnt);
        }

        sc.close();
        }

'알고리즘 > 문제' 카테고리의 다른 글

[백준] 2566번 문제 - JAVA  (0) 2026.03.09
[백준] 10810번 문제 - JAVA  (0) 2026.03.09
[백준] 1037번 문제 - JAVA  (0) 2026.03.05
[백준] 1032번 문제 - JAVA  (0) 2026.03.05
[백준] 1009번 문제 - JAVA  (0) 2026.03.05