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++) {
String str = br.readLine();
char[] ch = str.toCharArray();
int count = 0;
int index = 0;
for (int k = 0; k < 8; k++) {
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);
index[1] = Math.min(index[1], j);
index[2] = Math.max(index[2], i);
index[3] = Math.max(index[3], j);
}
}
}
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();
}
}
