SW Expert Academy/D3
[SWEA/Java] 1493. 수의 새로운 연산
ImJay
2024. 1. 22. 22:56
반응형
[SWEA/Java] 1493. 수의 새로운 연산
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// 테스트 케이스의 수 T 입력
int testCase = Integer.parseInt(br.readLine());
// 각 테스트 케이스에 대한 처리
for (int t = 1; t <= testCase; t++) {
// 두 정수 p, q 입력
String input = br.readLine();
StringTokenizer st = new StringTokenizer(input);
int p = Integer.parseInt(st.nextToken());
int q = Integer.parseInt(st.nextToken());
// 초기화
int x1 = 0, y1 = 0, x2 = 0, y2 = 0, ansx = 0, ansy = 0;
int element = 1;
// 대각선 순서로 격자점에 수를 할당하고 연산 수행
L: for (int i = 1; i < 300; i++) {
int j = i;
int k = 1;
for (int l = 0; l < i; l++) {
// p와 q에 해당하는 점 찾기
if (p == element) {
x1 = j;
y1 = k;
}
if (q == element) {
x2 = j;
y2 = k;
}
// 두 점에 대한 연산 수행
if (x1 != 0 && y1 != 0 && x2 != 0 && y2 != 0) {
ansx = x1 + x2;
ansy = y1 + y2;
}
// 연산 결과와 일치하는 점을 찾으면 결과 출력
if (j == ansx && k == ansy) {
sb.append("#" + t + " " + element + "\n");
break L;
}
j--;
k++;
element++;
}
}
}
// 결과 출력
System.out.print(sb);
}
}반응형