[백준 03000] 직각 삼각형 [Java]

2025. 7. 31. 14:53PS 풀이/Baekjoon Online Judge

문제

http://boj.ma/3000

 

3000번: 직각 삼각형

 

boj.ma

 


풀이

문제 요약

좌표축에 평행한 직각삼강형의 수를 구하자.

아이디어

임의의 직각 삼각형의 꼭짓점(x, y)에 대해 x 또는 y좌표가 평행한 점의 수의 곱은 만들어지는 직각 삼각형의 수와 같다. 전체 빈도에서 꼭짓점을 제외한 후 곱한 결과를 누적하자.

            // Solve
            xCnt.put(x[i], xCnt.getOrDefault(x[i], 0) + 1);
            yCnt.put(y[i], yCnt.getOrDefault(y[i], 0) + 1);
        }
        long cnt = 0;
        for (int i = 0; i < N; ++i) {
            cnt += (long) (xCnt.get(x[i]) - 1) * (yCnt.get(y[i]) - 1);
        }

        // Output
        System.out.println(cnt);
    }
}

풀이 시간

10분


소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/03000.java

 

problem-solving/baekjoon-online-judge/easy/03000.java at main · rogi-rogi/problem-solving

Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.

github.com