JAVA / Lv 0. 수학적 호기심
문제
문제 해결
브루트포스는 완전탐색 종류 중의 하나이다
정수 쌍 (a,b)는 0 < a < b < n 조건으로 인해 n이 10이면
첫 반복문에서 a = 1, b = 2이다
(a^2+b^2+m) / (ab)의 값이 정수라면 result 1씩 올라간다
이때, 문제에서 주는 식 그대로 구현했다면 에러가 발생한다
해결할 수 있는 방법은 (a^2+b^2+m) % (ab) 나머지 연산을 하는 것이다!
int 변수에 정수가 담기니까 상관없겠다 생각했는데, 결과값 자체가 소숫점이면 안되기 때문에 (a^2+b^2+m) % (ab) == 0이 필요하다.
나의 풀이
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
// 0 < a < b < n
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//입력
//1.테스트 케이스(숫자)가 입력된다
int T = Integer.parseInt(br.readLine());
//로직
//2. 1의 숫자만큼 반복문 생성.
for(int i = 0; i < T; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int result = 0;
for(int a = 1; a < n; a++){
for(int b = a + 1; b < n; b++){
if(((a * a) + (b * b) + m) % ( a * b ) == 0){
result++;
}
}
}
System.out.println(result);
}
}
}
'TIL' 카테고리의 다른 글
[백준] 10799번 : 쇠막대기 (0) | 2024.09.10 |
---|---|
[백준] 10816번 : 숫자 카드 2 JAVA (이분탐색) (0) | 2024.09.10 |
99클럽 코테 스터디 35일차 TIL (BFS (2)) (0) | 2024.08.25 |
99클럽 코테 스터디 34일차 TIL (BFS) (0) | 2024.08.24 |
99클럽 코테 스터디 33일차 TIL (0) | 2024.08.24 |