[Coding Test] SWEA(1)

박찬영·2024년 4월 2일

Coding Test

목록 보기
34/41

D3

1. 증가하는 사탕 수열 (20551)

import java.io.*;
import java.util.StringTokenizer;

public class P20551_증가하는사탕수열 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            int c = Integer.parseInt(st.nextToken());

            boolean bl = true;
            int count = 0;
            int index = i + 1;

            while (b >= c) {
                b--;
                if (b == 0 || b == 1) {
                    bw.write("#" + index + " " + "-1" + "\n");
                    bl = false;
                    break;
                }
                count++;
            }

            if (bl) {
                while (a >= b) {
                    a--;
                    if (a == 0) {
                        bw.write("#" + index + " " + "-1" + "\n");
                        bl = false;
                        break;
                    }
                    count++;
                }
            }

            if (bl)
                bw.write("#" + index + " " + count + "\n");

        }

        bw.flush();
        bw.close();
        br.close();
    }
}


2. 회문의 회문 (20019)

import java.io.*;

public class P20019_회문의회문 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            String str = br.readLine();
            char[] ch = str.toCharArray();
            int mid = ch.length / 2;

            int k = mid + 1;
            boolean bl = true;
            for (int j = mid - 1; j >= 0; j--) {
                if (ch[j] != ch[k]) {
                    bl = false;
                    break;
                }
                k++;
                if (k == ch.length) break;
            }

            if (bl) {
                int b = mid - 1;
                int a = 0;

                while (a < b) {
                    if (ch[b] != ch[a]) {
                        bl = false;
                        break;
                    }
                    b--;
                    a++;
                }
            }

            int seq = i + 1;
            if (bl)
                bw.write("#" + seq + " YES\n");
            else
                bw.write("#" + seq + " NO\n");
        }
        bw.flush();
        bw.close();
        br.close();
    }
}


3. 육십갑자 (19185)

import java.io.*;
import java.util.StringTokenizer;

public class P19185_육십갑자 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        int TC = Integer.parseInt(br.readLine());

        for (int t = 0; t < TC; t++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());

            String[] strN = new String[N + 1];
            String[] strM = new String[M + 1];

            st = new StringTokenizer(br.readLine());
            for (int i = 1; i <= N; i++)
                strN[i] = st.nextToken();

            st = new StringTokenizer(br.readLine());
            for (int i = 1; i <= M; i++)
                strM[i] = st.nextToken();

            int index = t + 1;
            sb.append("#").append(index).append(" ");

            int Q = Integer.parseInt(br.readLine());
            for (int i = 0; i < Q; i++) {
                int a = Integer.parseInt(br.readLine());

                int modN = a % N;
                int modM = a % M;

                if (modN == 0)
                    modN = N;
                if (modM == 0)
                    modM = M;

                String result = strN[modN] + strM[modM];
                sb.append(result).append(" ");
            }

            bw.write(sb.toString() + "\n");
            sb.setLength(0);
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


4. 식료품 가게 (19113)

import java.io.*;
import java.util.StringTokenizer;

public class P19113_식료품가게 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        int TC = Integer.parseInt(br.readLine());

        for (int t = 0; t < TC; t++) {
            int N = Integer.parseInt(br.readLine());
            int[] arr = new int[2 * N + 1];
            boolean[] visit = new boolean[2 * N + 1];

            int index = t + 1;
            sb.append("#").append(index).append(" ");

            st = new StringTokenizer(br.readLine());
            for (int i = 1; i <= 2 * N; i++)
                arr[i] = Integer.parseInt(st.nextToken());

            for (int i = 1; i <= 2*N; i++) {
                if (!visit[i]) {
                    visit[i] = true;
                    int k = arr[i] + arr[i] / 3;
                    for (int j = i + 1; j <= arr.length; j++) {
                        if (k == arr[j] && !visit[j]) {
                            visit[j] = true;
                            sb.append(arr[i]).append(" ");
                            break;
                        }
                    }
                }
            }

            bw.write(sb.toString() + "\n");
            sb.setLength(0);
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


5. 팰린드롬 문제 (19003)

import java.io.*;
import java.util.StringTokenizer;
import java.util.ArrayList;

public class P19003_팰린드롬 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int TC = Integer.parseInt(br.readLine());

        for (int t = 0; t < TC; t++) {
            st = new StringTokenizer(br.readLine());

            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());

            ArrayList<String> al = new ArrayList<>();

            for (int i = 0; i < N; i++) {
                st = new StringTokenizer(br.readLine());
                al.add(st.nextToken());
            }

            int count1 = 0;
            int count2 = 0;

            for (int i = 0; i < N; i++) {
                StringBuilder sb = new StringBuilder(al.get(i));
                String reverseStr = sb.reverse().toString();
                for (int j = i; j < N; j++) {
                    if (reverseStr.compareTo(al.get(j)) == 0) {
                        if (i == j)
                            count1 = 1;
                        else
                            count2 += 2;
                    }
                }
            }

            int result = (count1 + count2) * M;

            int index = t + 1;
            bw.write("#" + index + " " + result + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


6. 등차수열 (18662)

import java.io.*;
import java.util.StringTokenizer;

public class P18662_등차수열 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            int c = Integer.parseInt(st.nextToken());

            int index = i + 1;

            int gap1 = b - a;
            int gap2 = c - b;


            if (gap1 == gap2)
                sb.append("#" + index + " 0.0");
            else {
                float x = (Math.abs(gap2 - gap1) / (float) 2);
                sb.append("#" + index + " " + x);
            }

            bw.write(sb.toString() + "\n");
            sb.setLength(0);
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


7. 큰 수의 최대공약수 (17937)

import java.io.*;
import java.util.StringTokenizer;

public class P17937_큰수의최대공약수 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            st = new StringTokenizer(br.readLine());
            String A = st.nextToken();
            String B = st.nextToken();

            String answer = "1";
            if(A.equals(B)) answer = A;

            int index = i+1;
            bw.write("#" + index + " " + answer +"\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


8. 최대 조작 횟수 (17642)

import java.io.*;
import java.util.StringTokenizer;

public class P17642_최대조작횟수 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            st = new StringTokenizer(br.readLine());
            long A = Long.parseLong(st.nextToken());
            long B = Long.parseLong(st.nextToken());

            int seq = i + 1;

            if (A > B)
                bw.write("#" + seq + " -1\n");
            else {
                long count = 0;
                long gap = B - A;

                if (gap == 0)
                    bw.write("#" + seq + " 0\n");
                else if (gap == 1)
                    bw.write("#" + seq + " -1\n");
                else {
                    count += gap / 2;
                    bw.write("#" + seq + " " + count + "\n");
                }
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


9. 문자열문자열 (17319)

import java.io.*;
import java.util.StringTokenizer;

public class P17319_문자열문자열 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int N = Integer.parseInt(br.readLine());
            String str = br.readLine();
            char[] ch = str.toCharArray();
            int k = 0;
            int t = N / 2;

            boolean bl = true;
            if (N % 2 == 1)
                bl = false;

            while (bl) {
                if (ch[k] != ch[t]) {
                    bl = false;
                    break;
                }
                k++;
                t++;
                if (t == N)
                    break;
            }

            int seq = i + 1;
            if (bl)
                bw.write("#" + seq + " Yes\n");
            else
                bw.write("#" + seq + " No\n");

        }

        bw.flush();
        bw.close();
        br.close();
    }
}


10. 원 안의 점 (16910)

import java.io.*;
import java.util.StringTokenizer;

public class P16910_원안의점 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int N = Integer.parseInt(br.readLine());
            int range = (int) Math.pow(N, 2);

            int count = 0;
            for (int a = -N; a <= N; a++) {
                for (int b = -N; b <= N; b++) {
                    int value = (int) Math.pow(a, 2) + (int) Math.pow(b, 2);
                    if (value <= range)
                        count++;
                }
            }

            int seq = i + 1;
            bw.write("#" + seq + " " + count + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


11. 구구단 걷기 (16800)

import java.io.*;
import java.util.StringTokenizer;

public class P16800_구구단걷기 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            long N = Long.parseLong(br.readLine());
            long count = Long.MAX_VALUE;

            for (int j = 1; j <= Math.sqrt(N); j++) {
                if (N % j == 0) {
                    long now = N / j + j - 2;
                    if (count > now)
                        count = now;
                }
            }

            int seq = i + 1;
            bw.write("#" + seq + " " + count + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


12. 합성수 방정식 (16002)

import java.io.*;
import java.util.StringTokenizer;

public class Solution {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		int T = Integer.parseInt(br.readLine());

		for (int i = 0; i < T; i++) {
			int N = Integer.parseInt(br.readLine());
			int seq = i + 1;

			for (int x = 2 + N; x <= 1000000000; x++) {
				if (!isPrime(x) && !isPrime(x - N)) {
					bw.write("#" + seq + " " + x + " " + (x - N) + "\n");
					break;
				}
			}
		}

		bw.flush();
		bw.close();
		br.close();
	}

	public static boolean isPrime(int a) {
		for (int i = 2; i <= Math.sqrt(a); i++) {
			if (a % i == 0)
				return false;
		}
		return true;
	}
}


13. 평행사변형 (15941)

import java.io.*;
import java.util.StringTokenizer;

public class P15941_평행사변형 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int N = Integer.parseInt(br.readLine());

            int seq = i + 1;
            bw.write("#" + seq + " " + N * N + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


14. 무한 문자열 (15758)

import java.io.*;
import java.util.StringTokenizer;

public class P15758_무한문자열 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int TC = Integer.parseInt(br.readLine());

        for (int i = 0; i < TC; i++) {
            st = new StringTokenizer(br.readLine());

            String S = st.nextToken();
            String T = st.nextToken();

            int lenS = S.length();
            int lenT = T.length();

            int seq = i + 1;
            if (lenS == lenT) {
                if (S.equals(T))
                    bw.write("#" + seq + " yes\n");
                else
                    bw.write("#" + seq + " no\n");
            } else {
                String strS = "";
                String strT = "";

                for (int j = 0; j < lenT; j++) {
                    strS += S;
                }

                for (int j = 0; j < lenS; j++) {
                    strT += T;
                }

                if (strS.equals(strT))
                    bw.write("#" + seq + " yes\n");
                else
                    bw.write("#" + seq + " no\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


15. 체스판 위의 룩 배치 (15612)

import java.io.*;
import java.util.StringTokenizer;

public class P15612_체스판위의룩배치 {
    static boolean[] visit;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) { // 테스트 케이스
            visit = new boolean[8];
            boolean bl = true;
            int sum = 0;

            for (int j = 0; j < 8; j++) { // '.' , 'O' 입력 받기
                String str = br.readLine();
                char[] ch = str.toCharArray();
                int count = 0;
                int index = 0;

                for (int k = 0; k < 8; k++) { // 'O' 인지 확인
                    if (ch[k] == 'O') {
                        count++;
                        index = k;
                    }

                }
                if (count == 1) {
                    sum += 1;
                    bl = isPrime(index);
                } else {
                    bl = false;
                }
            }

            int seq = i + 1;
            if (bl && sum == 8)
                bw.write("#" + seq + " yes\n");
            else
                bw.write("#" + seq + " no\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }

    public static boolean isPrime(int y) {
        if (!visit[y]) {
            visit[y] = true;
            return true;
        } else {
            return false;
        }
    }
}


16. 알파벳 공부 (15230)

import java.io.*;
import java.util.StringTokenizer;

public class P15230_알파벳공부 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            String str = br.readLine();
            char[] ch = str.toCharArray();

            int a = 97;
            int count = 0;

            for (int j = 0; j < ch.length; j++) {
                if (ch[j] == (char) a) {
                    count++;
                    a++;
                } else {
                    break;
                }
            }

            int seq = i + 1;
            bw.write("#" + seq + " " + count + "\n");
        }
        bw.flush();
        bw.close();
        br.close();
    }
}


17. 통나무 자르기 (14692)

import java.io.*;
import java.util.StringTokenizer;

public class P14692_통나무자르기 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int N = Integer.parseInt(br.readLine());
            int seq = i + 1;
            if (N % 2 == 0) {
                bw.write("#" + seq + " Alice\n");
            } else {
                bw.write("#" + seq + " Bob\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


18. 공과 잡초 (14555)

import java.io.*;
import java.util.StringTokenizer;

public class P14555_공과잡초 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            String str = br.readLine();
            char[] ch = str.toCharArray();
            int count = 0;

            for (int j = 0; j < ch.length - 1; j++) {
                if (ch[j] == '(') {
                    if (ch[j + 1] == ')' || ch[j + 1] == '|')
                        count++;
                } else if (ch[j] == '|') {
                    if (ch[j + 1] == ')')
                        count++;
                }
            }

            int seq = i + 1;
            bw.write("#" + seq + " " + count + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


19. 숫자가 같은 배수 (14361)

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class P14361_숫자가같은배수 {
    static int N;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            String N = br.readLine();
            char[] chN = N.toCharArray();
            Arrays.sort(chN);

            int seq = i + 1;
            int k = 2;
            while (true) {
                long NX = Long.parseLong(N) * k;
                if (String.valueOf(NX).length() > String.valueOf(N).length()) {
                    bw.write("#" + seq + " impossible\n");
                    break;
                }

                char[] chNX = String.valueOf(NX).toCharArray();
                Arrays.sort(chNX);
                if (Arrays.equals(chN, chNX)) {
                    bw.write("#" + seq + " possible\n");
                    break;
                }
                k++;
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


20. 1차원 정원 (14178)

import java.io.*;
import java.util.StringTokenizer;

public class P14178_1차원정원 {
    static int N;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());

            int range = M * 2 + 1;

            int result = N / range;
            if (N % range != 0)
                result += 1;

            int seq = i + 1;
            bw.write("#" + seq + " " + result + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


21. 정사각형 판정 (13732)

import java.io.*;
import java.util.StringTokenizer;

public class P13732_정사각형판정 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            int N = Integer.parseInt(br.readLine());
            char[][] arr = new char[N][N];

            for (int i = 0; i < N; i++) {
                arr[i] = br.readLine().toCharArray();
            }

            int[] index = { N, N, -1, -1 };

            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {
                    if (arr[i][j] == '#') {
                        index[0] = Math.min(index[0], i); // 최소 x의 값
                        index[1] = Math.min(index[1], j); // 최소 y의 값
                        index[2] = Math.max(index[2], i); // 최대 x의 값
                        index[3] = Math.max(index[3], j); // 최대 y의 값
                    }
                }
            }

            boolean bl = true;
            if (index[2] - index[0] == index[3] - index[1]) {
                for (int i = index[0]; i <= index[2]; i++) {
                    for (int j = index[1]; j <= index[3]; j++) {
                        if (arr[i][j] != '#') {
                            bl = false;
                            break;
                        }
                        if (!bl)
                            break;
                    }
                }
            } else
                bl = false;

            if (bl)
                bw.write("#" + test_case + " yes\n");
            else
                bw.write("#" + test_case + " no\n");

        }

        bw.flush();
        bw.close();
        br.close();
    }
}


22. 격자판 칠하기 (14413)

import java.io.*;
import java.util.StringTokenizer;

public class P14413_격자판칠하기 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());

            char[][] arr = new char[N][M];

            for (int i = 0; i < N; i++) {
                arr[i] = br.readLine().toCharArray();
            }

            boolean bl;
            if (arr[0][0] == '#') {
                bl = check(arr, '#');
            } else if (arr[0][0] == '.') {
                bl = check(arr, '.');
            } else {
                bl = check(arr,'#') ? true : check(arr, '.');
            }

            if(bl)
                bw.write("#" + test_case + " possible\n");
            else
                bw.write("#" + test_case + " impossible\n");

        }

        bw.flush();
        bw.close();
        br.close();
    }

    public static boolean check(char[][] arr, char start) {
        char evenSum = start;
        char oddSum;
        if (evenSum == '#') {
            oddSum = '.';
        } else {
            oddSum = '#';
        }

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if ((i + j) % 2 == 0 && arr[i][j] == oddSum) {
                    return false;
                } else if ((i + j) % 2 == 1 && arr[i][j] == evenSum) {
                    return false;
                }
            }
        }
        return true;
    }
}


23. 팔씨름 (13547)

import java.io.*;
import java.util.StringTokenizer;

public class P13547_팔씨름 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            char[] arr = br.readLine().toCharArray();

            int chance = 15 - arr.length;
            int count = 0;

            for (int i = 0; i < arr.length; i++) {
                if (arr[i] == 'o')
                    count++;
            }

            int check = 8 - count;

            if (check > chance)
                bw.write("#" + test_case + " NO\n");
            else
                bw.write("#" + test_case + " YES\n");

        }

        bw.flush();
        bw.close();
        br.close();
    }
}


24. 숫자 조작 (13428)

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class P13428_숫자조작 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            char[] arr = br.readLine().toCharArray();
            char[] arrMin = Arrays.copyOf(arr, arr.length);
            char[] arrMax = Arrays.copyOf(arr, arr.length);

            searchMin(arrMin);

            sb.append("#" + test_case + " ");
            for (int i = 0; i < arr.length; i++) {
                sb.append(arrMin[i]);
            }
            sb.append(" ");

            searchMax(arrMax);

            for (int i = 0; i < arr.length; i++) {
                sb.append(arrMax[i]);
            }
            bw.write(sb.toString() + "\n");
            sb.setLength(0);
        }

        bw.flush();
        bw.close();
        br.close();
    }

    public static void searchMin(char[] arr) {
        int changeMin = -1;
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] > arr[j]) {
                    if (i == 0 && arr[j] == '0') {
                        continue;
                    }
                    changeMin = i;
                    break;
                }
            }
            if (changeMin != -1)
                break;
        }

        if (changeMin != -1) {
            int indexMin = changeMin;
            for (int i = changeMin + 1; i < arr.length; i++) {
                if (arr[indexMin] >= arr[i]) {
                    if (changeMin == 0 && arr[i] == '0')
                        continue;
                    indexMin = i;
                }
            }

            char temp = arr[indexMin];
            arr[indexMin] = arr[changeMin];
            arr[changeMin] = temp;
            return;
        } else
            return;
    }

    public static void searchMax(char[] arr) {
        int changeMax = -1;

        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] < arr[j]) {
                    changeMax = i;
                    break;
                }
            }
            if (changeMax != -1)
                break;

        }

        if (changeMax != -1) {
            int indexMax = changeMax;
            for (int i = indexMax + 1; i < arr.length; i++) {
                if (arr[indexMax] <= arr[i])
                    indexMax = i;
            }

            char temp = arr[indexMax];
            arr[indexMax] = arr[changeMax];
            arr[changeMax] = temp;
            return;
        } else
            return;
    }
}


25. 일요일 (13229)

import java.io.*;

public class P13229_일요일 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            String S = br.readLine();
            int result = check(S);

            bw.write("#" + test_case + " " + result + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }

    public static int check(String S) {
        switch (S) {
            case "MON":
                return 6;
            case "TUE":
                return 5;
            case "WED":
                return 4;
            case "THU":
                return 3;
            case "FRI":
                return 2;
            case "SAT":
                return 1;
            case "SUN":
                return 7;
            default:
                return 0;
        }
    }
}


26. 조별과제 (13218)

import java.io.*;

public class P13218_조별과제 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            int N = Integer.parseInt(br.readLine());
            int result = N / 3;

            bw.write("#" + test_case + " " + result + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


27. 교환학생 (13038)

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Solution {
	static int[] arr;
	static int n;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		int T = Integer.parseInt(br.readLine());

		for (int test_case = 1; test_case <= T; test_case++) {
			arr = new int[7];

			n = Integer.parseInt(br.readLine()); // 총 들어야하는 수업 횟수
			st = new StringTokenizer(br.readLine());

			for (int i = 0; i < 7; i++) {
				arr[i] = Integer.parseInt(st.nextToken());
			}

			int min = Integer.MAX_VALUE;
			for (int i = 0; i < 7; i++) {
				min = Math.min(min, DayCnt(i));
			}
			bw.write("#" + test_case + " " + min + "\n");
		}
		bw.flush();
		bw.close();
		br.close();
	}
	
	public static int DayCnt(int Day) {
		int cnt = 0;
		int DayCnt = 0;
		while (cnt != n) {
			DayCnt++;
			if (arr[Day] == 1) {
				cnt++;
			}
			Day++;
			if (Day == 7) {
				Day = 0;
			}
		}
		return DayCnt;
	}
}


28. 두 전구 (12741)

import java.io.*;
import java.util.StringTokenizer;

public class P12741_두전구 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());

            boolean[] visit = new boolean[101];
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            int C = Integer.parseInt(st.nextToken());
            int D = Integer.parseInt(st.nextToken());

            int cnt = 0;

            for (int i = A; i <= B; i++) {
                visit[i] = true;
            }

            for (int i = C; i <= D; i++) {
                if (visit[i]) {
                    cnt++;
                }
            }

            if (cnt == 0) {
                bw.write("#" + test_case + " " + cnt + "\n");
            } else {
                cnt -= 1;
                bw.write("#" + test_case + " " + cnt + "\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


29. 24시간 (12368)

import java.io.*;
import java.util.StringTokenizer;

public class P12368_24시간 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());

            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());

            int sum = A + B;

            if (sum < 24) {
                bw.write("#" + test_case + " " + sum + "\n");
            } else {
                sum -= 24;
                bw.write("#" + test_case + " " + sum + "\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


30. 구구단2 (12221)

import java.io.*;
import java.util.StringTokenizer;

public class P12221_구구단2 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());

            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());

            if (A >= 10 || B >= 10) {
                bw.write("#" + test_case + " " + "-1\n");
            } else {
                int result = A * B;
                bw.write("#" + test_case + " " + result + "\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


31. 구구단 1 (12004)

import java.io.*;
import java.util.StringTokenizer;

public class P12004_구구단1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            int N = Integer.parseInt(br.readLine());

            boolean bl = false;
            for (int i = 1; i <= 9; i++) {
                if (N % i == 0) {
                    if (N / i > 9) {
                        continue;
                    }
                    bl = true;
                    break;
                }
            }
            if (bl) {
                bw.write("#" + test_case + " Yes\n");
            } else {
                bw.write("#" + test_case + " No\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


32. 반반 (11856)

import java.io.*;
import java.util.StringTokenizer;

public class P11856_반반 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            boolean[] visit = new boolean[4];
            char[] ch = br.readLine().toCharArray();

            int count1 = 0;
            int count2 = 0;
            for (int i = 0; i < ch.length; i++) {
                if (!visit[i]) {
                    count1++;
                    visit[i] = true;
                    for (int j = i + 1; j < ch.length; j++) {
                        if (ch[i] == ch[j]) {
                            count2++;
                            visit[j] = true;
                        }
                    }
                }
            }

            if (count1 == 2 && count2 == 2) {
                bw.write("#" + test_case + " Yes\n");
            } else {
                bw.write("#" + test_case + " No\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


33. 평범한 숫자 (11736)

import java.io.*;
import java.util.StringTokenizer;
import java.util.HashMap;

public class P11736_평범한숫자 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            int N = Integer.parseInt(br.readLine());
            st = new StringTokenizer(br.readLine());

            int[] arr = new int[N];

            for (int i = 0; i < N; i++) {
                arr[i] = Integer.parseInt(st.nextToken());
            }

            int count = 0;
            for (int i = 1; i < arr.length - 1; i++) {
                int count1 = 0;
                int count2 = 0;

                if (arr[i] > arr[i - 1] || arr[i] > arr[i + 1]) {
                    count1++;
                }

                if (arr[i] < arr[i - 1] || arr[i] < arr[i + 1]) {
                    count2++;
                }

                if (count1 == 1 && count2 == 1) {
                    count++;
                }
            }
            bw.write("#" + test_case + " " + count + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


34. Calkin-Wilf tree 1 (11688)

import java.io.*;
import java.util.StringTokenizer;

public class P11688_CalkinWilfTree1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            char[] arr = br.readLine().toCharArray();

            int a = 1;
            int b = 1;

            for (int i = 0; i < arr.length; i++) {
                if (arr[i] == 'L') {
                    b += a;
                } else {
                    a += b;
                }
            }

            bw.write("#" + test_case + " " + a + " " + b + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


35. 무한 사전 (11445)

import java.io.*;
import java.util.StringTokenizer;

public class P11445_무한사전 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            String P = br.readLine();
            String Q = br.readLine();

            String Pa = P + "a";
            if (Pa.equals(Q)) {
                bw.write("#" + test_case + " N\n");
            } else {
                bw.write("#" + test_case + " Y\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


36. 몬스터 사냥 (11387)

import java.io.*;
import java.util.StringTokenizer;

public class P11387_몬스터사냥 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());
            int D = Integer.parseInt(st.nextToken());
            int L = Integer.parseInt(st.nextToken());
            int N = Integer.parseInt(st.nextToken());

            long result = 0;
            for (int i = 0; i < N; i++) {
                result += D * (1 + i * L * 0.01);
            }
            bw.write("#" + test_case + " " + result + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


37. 오목 판정 (11315)

import java.io.*;
import java.util.StringTokenizer;

public class P11315_오목판정 {
    static int N;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            N = Integer.parseInt(br.readLine());
            char[][] arr = new char[N][N];

            for (int i = 0; i < N; i++) {
                arr[i] = br.readLine().toCharArray();
            }

            boolean bl = false;
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {
                    if (arr[i][j] == 'o') {
                        bl = check_row(arr, i, j) || check_col(arr, i, j) || check_cross1(arr, i, j)
                                || check_cross2(arr, i, j);
                        if (bl) {
                            break;
                        }
                    }
                }
                if (bl) {
                    break;
                }
            }
            if (bl) {
                bw.write("#" + test_case + " YES\n");
            } else {
                bw.write("#" + test_case + " NO\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }

    public static boolean check_row(char[][] arr, int a, int b) {
        int count = 0;
        while (count != 5) {
            count++;
            if (arr[a][b] != 'o') {
                return false;
            }
            b++;
            if (count != 5 && b == N) {
                return false;
            }
        }
        return true;
    }

    public static boolean check_col(char[][] arr, int a, int b) {
        int count = 0;
        while (count != 5) {
            count++;
            if (arr[a][b] != 'o') {
                return false;
            }
            a++;
            if (count != 5 && a == N) {
                return false;
            }
        }
        return true;
    }

    public static boolean check_cross1(char[][] arr, int a, int b) {
        int count = 0;
        while (count != 5) {
            count++;
            if (arr[a][b] != 'o') {
                return false;
            }
            a++;
            b++;
            if (count != 5 && a == N) {
                return false;
            }
            if (count != 5 && b == N) {
                return false;
            }
        }
        return true;
    }

    public static boolean check_cross2(char[][] arr, int a, int b) {
        int count = 0;
        while (count != 5) {
            count++;
            if (arr[a][b] != 'o') {
                return false;
            }
            a++;
            b--;
            if (count != 5 && a == N) {
                return false;
            }
            if (count != 5 && b == -1) {
                return false;
            }
        }
        return true;
    }
}


38. 다트 게임 (11285)

import java.io.*;
import java.util.StringTokenizer;

public class P11285_다트게임 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());
        int[] arr = {20, 40, 60, 80, 100, 120, 140, 160, 180, 200};

        for (int test_case = 1; test_case <= T; test_case++) {
            int N = Integer.parseInt(br.readLine());
            long sum = 0;

            for (int i = 0; i < N; i++) {
                st = new StringTokenizer(br.readLine());
                int x = Integer.parseInt(st.nextToken());
                int y = Integer.parseInt(st.nextToken());

                int score = 0;
                for (int j = 0; j < 10; j++) {
                    if (Math.pow(x, 2) + Math.pow(y, 2) <= Math.pow(arr[j], 2)) {
                        score = arr[j];
                        break;
                    }
                }

                if (score != 0) {
                    int p = 11 - score / 20;
                    sum += p;
                }
            }
            bw.write("#" + test_case + " " + sum + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


39. 군주제와 공화제 (10993)

import java.io.*;
import java.util.StringTokenizer;

public class P10993_군주제와공화제 {
    static char[] ch;
    static int[] index;
    static int N;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            N = Integer.parseInt(br.readLine());
            int[][] arr = new int[N][3];
            ch = new char[N];
            index = new int[N];
            for (int i = 0; i < N; i++) {
                index[i] = i;
            }

            for (int i = 0; i < N; i++) {
                st = new StringTokenizer(br.readLine());
                arr[i][0] = Integer.parseInt(st.nextToken());
                arr[i][1] = Integer.parseInt(st.nextToken());
                arr[i][2] = Integer.parseInt(st.nextToken());
            }

            for (int i = 0; i < N; i++) {
                int count = 0;
                for (int j = 0; j < N; j++) {
                    if (i != j) {
                        double power = arr[j][2]
                                / ((Math.pow(arr[i][0] - arr[j][0], 2)) + (Math.pow(arr[i][1] - arr[j][1], 2)));
                        if (arr[i][2] < power) {
                            count++;
                            index[i] = index[j];
                        }
                    }
                }
                if (count == 0) {
                    ch[i] = 'K';
                } else if (count == 1) {
                    ch[i] = (char) (index[i] + '0');
                } else {
                    ch[i] = 'D';
                }
            }

            for (int i = 0; i < N; i++) {
                if (ch[i] != 'K' && ch[i] != 'D') {
                    ch[i] = find(ch[i] - '0');
                }
            }

            for (int i = 0; i < N; i++) {
                if (ch[i] != 'K' && ch[i] != 'D') {
                    ch[i] += 1;
                }
            }

            bw.write("#" + test_case + " ");
            for (int i = 0; i < N; i++) {
                bw.write(ch[i] + " ");
            }

            bw.write("\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }

    public static char find(int a) {
        if (ch[a] == 'K' || ch[a] == 'D') {
            return (char) (a + '0');
        } else {
            return find(ch[a] - '0');
        }
    }
}


40. 외로운 문자 (10912)

import java.io.*;
import java.util.Arrays;

public class P10912_외로운문자 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            char[] arr = br.readLine().toCharArray();
            boolean[] visit = new boolean[arr.length];

            for (int i = 0; i < arr.length - 1; i++) {
                if (!visit[i]) {
                    for (int j = i + 1; j < arr.length; j++) {
                        if (arr[i] == arr[j]) {
                            visit[i] = true;
                            visit[j] = true;
                            break;
                        }
                    }
                }
            }

            String str = "";
            int count = 0;
            for (int i = 0; i < arr.length; i++) {
                if (!visit[i]) {
                    str += String.valueOf(arr[i]);
                    count++;
                }
            }

            char[] ch = str.toCharArray();
            Arrays.sort(ch);
            str = "";
            for (int i = 0; i < ch.length; i++) {
                str += String.valueOf(ch[i]);
            }

            if (count == 0) {
                bw.write("#" + test_case + " Good\n");
            } else {
                bw.write("#" + test_case + " " + str + "\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


41. 문자열의 거울상 (10804)

import java.io.*;

public class P10804_문자열의거울상 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            char[] arr = br.readLine().toCharArray();

            for (int i = 0; i < arr.length; i++) {
                arr[i] = swap(arr[i]);
                sb.append(arr[i] + "");
            }

            bw.write("#" + test_case + " " + sb.reverse().toString() + "\n");
            sb.setLength(0);
        }

        bw.flush();
        bw.close();
        br.close();
    }

    public static char swap(char ch) {
        switch (ch) {
            case 'b':
                return 'd';
            case 'd':
                return 'b';
            case 'p':
                return 'q';
            default:
                return 'p';
        }
    }
}


42. 소득 불균형 (10505)

import java.io.*;
import java.util.StringTokenizer;

public class P10505_소득불균형 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            int N = Integer.parseInt(br.readLine());
            int[] arr = new int[N];

            int sum = 0;

            st = new StringTokenizer(br.readLine());
            for (int i = 0; i < N; i++) {
                arr[i] = Integer.parseInt(st.nextToken());
                sum += arr[i];
            }
            sum /= N;

            int count = 0;
            for (int i = 0; i < N; i++) {
                if (arr[i] <= sum) {
                    count++;
                }
            }

            bw.write("#" + test_case + " " + count + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }

}


43. 신뢰 (10761)

import java.io.*;
import java.util.StringTokenizer;

public class P10761_신뢰 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());

            int indexB = 1;
            int indexO = 1;

            int sum = 0;
            int leftTime_B = 0;
            int leftTime_O = 0;

            for (int i = 0; i < N; i++) {
                String str = st.nextToken();
                int number = Integer.parseInt(st.nextToken());

                if (str.equals("B")) {
                    int gap = (int) Math.abs(number - indexB);
                    if (gap == 0) {
                        sum += 1;
                        leftTime_O += 1;
                        leftTime_B = 0;
                    } else {
                        if (gap <= leftTime_B) {
                            sum += 1;
                            leftTime_O += 1;
                            leftTime_B = 0;
                            indexB = number;
                        } else {
                            sum += Math.abs(gap - leftTime_B) + 1;
                            leftTime_O += Math.abs(gap - leftTime_B) + 1;
                            leftTime_B = 0;
                            indexB = number;
                        }
                    }
                } else if (str.equals("O")) {
                    int gap = (int) Math.abs(number - indexO);
                    if (gap == 0) {
                        sum += 1;
                        leftTime_B += 1;
                        leftTime_O = 0;
                    } else {
                        if (gap <= leftTime_O) {
                            sum += 1;
                            leftTime_B += 1;
                            leftTime_O = 0;
                            indexO = number;
                        } else {
                            sum += Math.abs(gap - leftTime_O) + 1;
                            leftTime_B += Math.abs(gap - leftTime_O) + 1;
                            leftTime_O = 0;
                            indexO = number;
                        }
                    }
                }
            }
            bw.write("#" + test_case + " " + sum + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


44. 이진수 표현 (10726)

import java.io.*;
import java.util.StringTokenizer;
import java.util.ArrayList;

public class P10726_이진수표현 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());

            ArrayList<Integer> al = new ArrayList<>();

            while (M != 0) {
                al.add(M % 2);
                M /= 2;
            }

            int size = al.size();
            boolean bl = true;

            if (size < N) {
                bl = false;
                bw.write("#" + test_case + " OFF\n");
            } else {
                for (int i = 0; i < N; i++) {
                    if (al.get(i) != 1) {
                        bl = false;
                        bw.write("#" + test_case + " OFF\n");
                        break;
                    }
                }
            }

            if (bl) {
                bw.write("#" + test_case + " ON\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


45. 제곱 팰린드롬 수 (10570)

import java.io.*;
import java.util.StringTokenizer;
import java.util.Arrays;

public class Solution {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;
		StringBuilder sbI = new StringBuilder();
		StringBuilder sbK = new StringBuilder();

		int T = Integer.parseInt(br.readLine());

		for (int test_case = 1; test_case <= T; test_case++) {
			st = new StringTokenizer(br.readLine());
			int A = Integer.parseInt(st.nextToken());
			int B = Integer.parseInt(st.nextToken());

			int i = 1;
			int k = i;
			while (k < A) {
				i++;
				k = i * i;
			}

			int count = 0;
			while (k <= B) {
				String strI = sbI.append(i).reverse().toString();
				String strK = sbK.append(k).reverse().toString();

				if (strI.equals(String.valueOf(i)) && strK.equals(String.valueOf(k))) {
					count++;
				}

				sbI.setLength(0);
				sbK.setLength(0);

				i++;
				k = i * i;
			}

			bw.write("#" + test_case + " " + count + "\n");
		}

		bw.flush();
		bw.close();
		br.close();
	}
}


46. 전봇대 (10580)

import java.io.*;
import java.util.*;

public class P10580_전봇대 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            int N = Integer.parseInt(br.readLine());
            int[][] arr = new int[N][2];

            for (int i = 0; i < N; i++) {
                st = new StringTokenizer(br.readLine());
                arr[i][0] = Integer.parseInt(st.nextToken());
                arr[i][1] = Integer.parseInt(st.nextToken());
            }

            Arrays.sort(arr, new Comparator<int[]>() {
                public int compare(int[] o1, int[] o2) {
                    if (o1[0] == o2[0]) {
                        return o1[1] - o2[1];
                    } else {
                        return o1[0] - o2[0];
                    }
                }
            });

            int answer = 0;

            for (int i = 0; i < N - 1; i++) {
                for (int j = i + 1; j < N; j++) {
                    if (arr[i][1] > arr[j][1]) {
                        answer++;
                    }
                }
            }

            bw.write("#" + test_case + " " + answer + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


47. 구독과 전쟁 (10200)

import java.io.*;
import java.util.*;

public class P10200_구독과전쟁 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());

            int max = -1;
            int min = -1;

            if (a + b <= N) {
                min = 0;
            } else {
                min = (a + b) - N;
            }

            if (a <= b) {
                max = a;
            } else {
                max = b;
            }

            bw.write("#" + test_case + " " + max + " " + min + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


48. 유효기간 (10059)

import java.io.*;
import java.util.*;

public class P10059_유효기간 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            char[] ch = br.readLine().toCharArray();
            String strF = String.valueOf(ch[0]) + String.valueOf(ch[1]);
            String strS = String.valueOf(ch[2]) + String.valueOf(ch[3]);

            int intF = Integer.parseInt(strF);
            int intS = Integer.parseInt(strS);

            boolean my = MMYY(intF, intS);
            boolean ym = YYMM(intF, intS);

            if (my && ym) {
                bw.write("#" + test_case + " AMBIGUOUS\n");
            } else if (my) {
                bw.write("#" + test_case + " MMYY\n");
            } else if (ym) {
                bw.write("#" + test_case + " YYMM\n");
            } else {
                bw.write("#" + test_case + " NA\n");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }

    public static boolean MMYY(int s, int e) {
        if (s < 1 || s >= 13) {
            return false;
        }

        return true;
    }

    public static boolean YYMM(int s, int e) {
        if (e < 1 || e >= 13) {
            return false;
        }

        return true;
    }
}


49. 과자 분배 (10032)

import java.io.*;
import java.util.*;

public class P10032_과자분배 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int T = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= T; test_case++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int K = Integer.parseInt(st.nextToken());

            int answer = 0;
            if (N % K != 0) {
                answer = 1;
            }
            bw.write("#" + test_case + " " + answer + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}


50. 시험 (8888)

import java.io.*;
import java.util.*;

public class P8888_시험 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int Q = Integer.parseInt(br.readLine());

        for (int test_case = 1; test_case <= Q; test_case++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());    // 참가자 수
            int T = Integer.parseInt(st.nextToken());    // 문제 수
            int P = Integer.parseInt(st.nextToken());    // 참가자 번호

            int[][] arr = new int[N][T];

            for (int i = 0; i < N; i++) {
                st = new StringTokenizer(br.readLine());
                for (int j = 0; j < T; j++) {
                    arr[i][j] = Integer.parseInt(st.nextToken());
                }
            }

            int[] score = new int[T];
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < T; j++) {
                    if (arr[i][j] == 0) {
                        score[j]++;
                    }
                }
            }

            int[] grade = new int[N];
            int[] cnt = new int[N];
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < T; j++) {
                    if (arr[i][j] == 1) {
                        grade[i] += score[j];
                        cnt[i]++;
                    }
                }
            }

            int[] rank = new int[N];
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {

                    if (i == j) {
                        continue;
                    }

                    if (grade[i] < grade[j]) {
                        rank[i]++;
                    } else if (grade[i] == grade[j] && cnt[i] < cnt[j]) {
                        rank[i]++;
                    } else if (grade[i] == grade[j] && cnt[i] == cnt[j] && i > j) {
                        rank[i]++;
                    }
                }
                rank[i]++;
            }

            bw.write("#" + test_case + " " + grade[P - 1] + " " + rank[P - 1] + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}

profile
블로그 이전했습니다 -> https://young-code.tistory.com

0개의 댓글