목록Brute Force Algorithm (40)
기록방
👉 문제링크 1954번: 화학실험 우리에게는 n가지 종류의 화학 시약 t1, t2, ..., tn과 M mg의 용액이 있다. 이 용액 중 x mg을 시약 ti에 넣으면 aix+bi만큼의 어떤 가스가 발생한다고 한다. 시약에 넣을 수 있는 용액의 양은 자연수이 www.acmicpc.net 🔸 문제 분석 🔸 n 종류의 화학 시약 t1, t2, ..., tn의 정보 ai와 bi, 그리고 M mg의 용액이 주어진다. 용액 중 x mg을 시약 ti 에 넣으면 ai*x+bi 만큼의 가스가 발생한다. n개의 화학 시약 모두 같은 양의 가스를 발생시킬 수 있으면 가스 양을 출력하고, 그럴 수 없으면 0을 출력한다. 용액이 남으면 안된다. 용액의 양 x mg 을 1부터 늘려가며 용액들에 넣어보고 같은 양의 가스가 발생하..
👉 문제링크 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 🔸 문제 분석 🔸 n X n 로 사탕이 있다. 사탕의 종류는 C, P, Z, Y가 있다. 인접한 두 칸을 골라 사탕을 교환한다. 같은 색으로 이루어진 행 또는 열 중 먹을 수 있는 사탕의 최대값을 출력한다. 풀이 최대값을 찾기 위해서는 교환할 수 있는 모든 경우의 수를 찾아야 한다. 사탕 교환은 아래 혹은 오른쪽으로만 이동하며 진행한다. 각각의 경우에 나오는 연속된 사탕의 최대값을 저장한다. 사탕의 최소값은 1이다. 최대값을 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { static char[][] arr; ..
👉 문제링크 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 🔸 문제 분석 🔸 n이 주어졌을때 1부터 n까지의 수로 이루어진 순열을 사전순으로 출력한다. 🔸 코드 🔸 import java.util.Scanner; import java.util.Stack; public class Main { static Stack stack; private static void dfs(int d, StringBuilder sb) { if (stack.size() == d) { for (int i : stack) { sb.append(i+" "); } sb.append("\n"); } for (int i = 1; i
👉 문제링크 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 🔸 문제 분석 🔸 n명의 참가자 중에 두 사람의 번호를 입력받는다. 2명씩 경기를 진행하며 이기면 올라간다. n이 홀수여서 혼자 남는 마지막 선수는 부전승으로 올라간다. 참가자 수 n이 1이 될때까지 반복한다. 두 사람은 무조건 승리한다. 두 사람이 만나는 라운드 수를 출력한다. 만나지 못하는 경우는 -1을 출력하지만, 그런 경우는 없다. 🔸 코드 🔸 import java.util.ArrayList; import java.util.Scanner; publi..
👉 문제링크 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 🔸 문제 분석 🔸 N일동안 업무를 수행한다. N개의 업무의 처리에 필요한 시간 t와 받는 금액 p가 있다. 처리에 필요한 시간이 N일을 넘으면 처리 불가능하다. 받을 수 있는 금액의 최대값을 출력한다. 재귀 메소드로 브루트 포스 방식으로 풀이할 수 있다. 다이나믹 프로그래밍 방식으로 풀이할 수 있다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] t = ..