Algorithm22 백준 2798번 블랙잭 블랙잭은 주어진 몇 장의 카드 중에서 3장을 조합해 특정 최대값(M)을 넘지 않으면서 가장 근접한 카드합을 출력하는 문제다. 3중 반복문(for)을 사용해 문제를 해결하였다. 중복된 카드 뽑기를 허용하지 않으므로, 각 반복문의 인덱싱에 주의하자. import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int M = in.nextInt(); int[] cards = new int[N]; for (int i = 0; i < N; i++) { cards[i] = .. 2023. 3. 13. 백준 1436번 영화감독 숌 영화감독 숀은 666이 들어간 N번째 숫자를 찾는 문제다. N = 1, output = 666 N = 2, output = 1666 ... N = 6, output = 5666 N = 7, output = 6660 N = 8, output = 6661 ... N = 16, output = 6669 N = 17, output = 7666 ... 666부터 시작하여 숫자를 증가시키며 무차별 대입 방법을 활용해 풀이했다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int cnt = 1; int .. 2023. 3. 11. 백준 1934번 최소공배수 주어진 두 숫자의 최소공배수를 구하는 문제다. 이 문제는 두 숫자의 최대공약수를 구하는 대표적인 알고리즘인 유클리드 호제법을 활용해 풀이하였다. ※ 최소공배수를 구하는 문제이며, 최소공배수는 [숫자1 x 숫자2 / 최대공약수] 로 계산할 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int T = in.nextInt(); for (int i = 0; i < T; i++) { int A = in.nextInt(); int B = in.nextInt(); int gcd = calcGcd(B, A); // 최대공약수 int l.. 2023. 3. 11. 백준 11399번 ATM ATM은 ATM 앞에 줄 선 사람들의 순서를 조작해 모두가 은행업무를 마칠 수 있는 최소한의 시간을 구하는 문제다. (선두에 줄을 선 사람에는 손해일 수도 있으며, 손해 여부를 떠나 현실에서는 결코 일어날 수 없는 일이다..) 주어진 문제 설명에 따르면 사람에 따라 각각 다음과 같은 시간이 소요된다고 한다. Person 1 Person 2 Person 3 Person 4 Person 5 3 분 1 분 4 분 3 분 2 분 업무 처리에 개인이 소요하는 시간은 순서에 따라 상관없이 일정하지만, 뒤에 서 있을 수록 앞 사람들이 일을 모두 마칠 때까지 기다려야 하므로 실제로 업무 처리에 소요되는 시간은 다음과 같으며 총 39분이 소요된다. Person 1 Person 2 Person 3 Person 4 Pers.. 2023. 3. 11. 이전 1 2 3 4 5 6 다음