
내가 생각했을때 문제에서 원하는부분
첫째 줄에 테스트 케이스의 개수 T가 주어진다. (1 ≤ T ≤ 10000)
각 테스트 케이스의 첫째 줄에 양의 정수 N, M이 공백으로 구분되어 주어진다. (2 ≤ N, M ≤ 500000)
모든 테스트 케이스에서 N x M의 합은 10^6 이하이다.
각 테스트 케이스의 첫째 줄에 문제의 답을 출력한다.
내가 이 문제를 보고 생각해본 부분
BufferedReader와 StringTokenizer를 사용해 입력을 받는다.
테스트 케이스 T를 읽고, 각 케이스마다 N,M을 읽는다.
최소 커넥터 개수를 N + M − 1로 계산하는데, 이는 문제에서 설명한 모든 가로 선분과 세로 선분이 하나의 네트워크로 연결되어 모든 격자가 직사각형이 되도록 하는 최소 연결 수와 일치한다.
결과를 출력한다.
입력이 모두 처리되면 BufferedReader를 닫아 자원을 반환한다.
코드로 구현
package baekjoon.baekjoon_34;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
// 백준 34563번 문제
public class Main1369 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine()); // 테스트케이스 수
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()); // 세로 선분 개수
// 최소 커넥터 수는 N + M - 1
int result = N + M - 1;
System.out.println(result);
}
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.