컴퓨터 공학/백준75 [백준] JAVA 자바 : 진법 변환 2 (11005번) 진법 변환하는 문제이다. 사실 10진수를 N진수로 변환하는 건 그냥 10진수 수를 N으로 계속해서 나눈 나머지를 반환하면 돼서 굉장히 쉬운 문제이다. import java.io.*; import java.util.StringTokenizer; public class RadixChange2_11005 { public static int stoi(String str) { return Integer.parseInt(str); } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new St.. 2024. 1. 22. [백준] JAVA 자바 : 골드바흐 파티션 (17103번) 앞에서 배웠던 골드바흐의 추측을 조금 응용한 문제이다. 골드바흐의 추측에서는 두 소수를 출력했다면, 이제 모든 경우의 수를 돌면서 두 소수의 쌍이 나올 때마다 누적을 해서 출력해주면 된다. 실버2 치고는 굉장히 간단한 문제인 듯? import java.io.*; import java.util.Arrays; public class GoldbachPartition_17103 { static final int MAX = 1000000; static boolean[] n_list = new boolean[MAX + 1]; // 소수인지 아닌지를 담을 배열. true = 소수, false = 소수 아님 static StringBuilder sb = new StringBuilder(); public static i.. 2024. 1. 22. [백준] JAVA 자바 : 8진수 2진수 (1212번) 8진수가 주어졌을 때 2진수로 바꾸는 문제이다. 8진수를 2진수로 바꾸는 방법만 안다면 쉽게 해결할 수 있을 것이다! 8진수를 한 문자씩 끊어서 2진수로 변환한 다음 다 이어붙이면 된다! 사실 직전 문제인 2진수 8진수는 못 풀겠어서… 일단 이거부터 풀었다…ㅜㅜ import java.io.*; public class OctaltoBinary_1212 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String N = br.readLine();.. 2024. 1. 22. [백준] JAVA 자바 : 숨바꼭질 6 (17087번) 수빈이의 현재 위치에서 동생들을 모두 찾을 수 있는 D의 최댓값을 구하는 문제이다. 사실 처음에는 되게 막막했는데… 예제 출력들의 공통된 패턴을 찾아본 결과, 동생들의 위치와 수빈이의 현재 위치의 차이(거리)의 최대공약수들 중 가장 작은 값이라는 점이었기에 그걸 구하면 된다. 사실 처음에는 동생들의 위치가 주어지면 그 중 가장 작은 값을 가지고 나머지 거리들과의 최대공약수를 구하려고 min을 선언했는데, 사실 굳이 그럴 필요가 없었다. 가장 작은 값이 아니라도 그냥 아무 거리나 잡고 그 값과 다른 거리들의 최대공약수 중 가장 작은 값을 구하기만 하면 됐다. 어차피 다 공통된 최대공약수를 구하는 것이기 때문에… import java.io.*; import java.util.StringTokenizer; p.. 2024. 1. 22. [백준] JAVA 자바 : GCD 합 (9613번) 테스트 케이스의 개수가 주어지고, 그만큼 나올 수 있는 모든 두 쌍으로 만든 GCD의 합을 출력하는 문제이다. 사실 호제법과 static 변수만 잘 사용할 수 있다면 큰 어려움 없이 풀 수 있을 듯? 그런데 굳이 static 변수에 저장 안 해도 그냥 main 클래스에 변수 하나 생성해서 거기에 누적합 하면 더 빠를 것 같긴 한데… 난 static으로 했으니 귀찮으니까 이렇게 하자~ㅋㅋ 그런데 최대 수가 100만이기 때문에 int가 아니라 long으로 선언해줘야 한다! 난 처음에 int로 했다가 3번이나 틀렸다… 뒤늦게 깨달음……ㅋㅋㅋㅋ 여하튼 모든 경우의 수에 대해 GCD를 구해서 static long 변수에 계속해서 누적한 후 마지막에 그걸 출력하면 쉽게 해결할 수 있다. import java.io... 2024. 1. 22. [백준] JAVA 자바 : 조합 0의 개수 (2004번) 조합을 구한 후 뒤에서부터 연속하는 0의 개수를 세는 문제이다. 앞에서 구한 팩토리얼 0의 개수와 비슷한데, 이 경우는 2의 개수도 헤아려 줘야 한다. nCm은 n! / (n-m)!m!이므로 n!의 약수의 개수에서 (n-m)!의 약수 개수와 m!의 약수 개수를 빼주면 된다. 그래서 약수 2의 개수가 5의 개수보다 적어질 수도 있어서 약수 2의 개수와 약수 5의 개수 중 더 적은 수를 반환해주면 된다. import java.io.*; import java.util.StringTokenizer; public class Combination_2004 { public static int stoi(String str) { return Integer.parseInt(str); } public static int f.. 2024. 1. 22. 이전 1 ··· 5 6 7 8 9 10 11 ··· 13 다음 반응형