Algorithm
백준 17087번 숨바꼭질 6 [ Java ]
17087번: 숨바꼭질 6 수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이 www.acmicpc.net gcd를 이용하는 문제였습니다. 수빈이가 있는 위치와 각 동생들의 거리들의 최대공약수를 구하는 문제였습니다. import java.io.*; import java.util.*; public class Main { static int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } public static void main(String[] args) throws I..
백준 2745번 진법 변환 [ Java ]
2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 뒷 자리 문자부터 해당 진법으로 변환해 더해주는 계산을 하였습니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringT..
백준 11005번 진법 변환 2 [ Java ]
11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 중학교 때 이진법 변환을 할때 ㄴ을 그리면서 2로 나누는 연산처럼 해당 진수로 나누면서 StringBuilder 앞에다가 추가해주면서 뒤로 보냈습니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamRe..
백준 17103번 골드바흐 파티션 [ Java ]
17103번: 골드바흐 파티션 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다. www.acmicpc.net 이전에 풀었던 골드바흐 코드를 조그만 수정하면 풀 수 있다. import java.io.*; import java.util.*; public class Main { static StringBuilder sb = new StringBuilder(); static boolean isPrime[] = new boolean[1000001]; public static void main(String[] args) throws IOException { BufferedReader..
백준 1212번 8진수 2진수 [ Java ]
1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String[] firstOct = {"0", "1", "10", "11", "100", "101", "110", "111"}; String[] oct = {"..
백준 1373번 2진수 8진수 [ Java ]
1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 재귀를 사용해서 맨 뒷자리부터 처리하는 방법밖에 생각나지 않았었는데 앞 부분부터 변환할 수 있다는 것을 배웠습니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); char[] str = br.readLi..
백준 9613번 GCD 합 [ Java ]
9613번: GCD 합 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진 www.acmicpc.net gcd의 합이 정수의 범위를 넘어갈 수 있으므로 long 자료형으로 선언해줘야 합니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String..
백준 6588번 골드바흐의 추측 [ Java ]
6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 에라토스테네스의 체를 사용하였습니다. import java.io.*; import java.util.*; public class Main { static StringBuilder sb = new StringBuilder(); static boolean isPrime[] = new boolean[1000001]; public static void main(String[] args) throws IOException { BufferedRead..
백준 10824번 네 수 [ Java ]
10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net int를 사용하면 범위가 초과 됩니다. 최대값 20000002000000(2조 20만) int 최댓값 약 21억 long 약 900경 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input[] = br.readLine().split(" "); System.out.print(Long..
백준 11655번 ROT13 [ Java ]
11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); char str[] = br.readLine().toCharArray(); for (char ch : str) { if ('a'