반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-19 04:57
관리 메뉴

ImJay

[SWEA/Java] 1493. 수의 새로운 연산 본문

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);
    }
}
반응형
Comments