백준 - 단계별로 풀어보기/브루트 포스

1. 문제 상세 https://www.acmicpc.net/problem/2839 2. 문제 접근 모든 경우의 수를 확인하는 브루트 포스 알고리즘을 사용하여 문제를 해결해보자. 입력받은 무게를 5로 나누었을때 나머지가 0이면 5로 나눈 몫을 무게에서는 빼주고 봉지 수에는 더한다. 위의 경우 봉지 수가 최소 갯수로 계산이 끝난 것이므로 반복을 끝내도록 하자. 입력받은 무게에서 3을 빼고 봉지 수를 하나 추가한다. 나머지가 0이 아니라면 3을 빼고 봉지 수를 하나 추가하는 과정을 반복한다. 반복은 무게가 0보다 작거나 같아질 때 까지 반복하자. 반복이 끝나면 무게가 0보다 작은지 확인, 0이라면 봉지 개수를 출력하고 0보다 작으면 -1을 출력하자. 3. 문제 풀이 #include using namespace..
1. 문제 상세 https://www.acmicpc.net/problem/1436 2. 문제 접근 n 번째로 작은 666이 나오는 숫자를 찾자. 숫자를 666부터 1씩 더해가며 확인하고, 666이 나오는 숫자를 찾으면 카운트, 카운트가 n 과 같아지면 그만두고 그 숫자를 출력하도록 하자. 확인하는 과정에서는 숫자를 1000으로 나눠보고 나머지가 666인지 확인, 아니라면 10으로 나누고 다시 확인하는 과정을 반복하도록 하자. 3. 문제 풀이 #include using namespace std; int main() { int n, count = 0, end = 665; cin >> n; while (count != n) { end++; int temp = end; while (temp != 0) { if ..
1. 문제 상세 https://www.acmicpc.net/problem/1018 2. 문제 접근 이번 문제도 브루트 포스 알고리즘을 사용하여 해결하면 된다. N * M 크기의 체스판이 주어지는데, 1, 1(첫 줄, 첫 번째)번 칸부터 8 * 8 크기의 칸을 모두 확인하여 해당 범위 내에 몇 개의 사각형을 다시 칠해야 하는지 구한다. 이를 1, 1 칸부터 N - 7, M - 7 번 칸까지 반복하며 확인하자. 확인을 위해 1, 1 칸이 검정색으로 시작하는 8 * 8 크기의 보드 배열, 흰색으로 시작하는 보드 배열을 만들고 각 칸이 같은지 비교한다. 모두 비교하여 가장 적은 수의 사각형을 칠해야 하는 경우를 출력하자. 3. 문제 풀이 #include #include using namespace std; in..
1. 문제 상세 https://www.acmicpc.net/problem/19532 2. 문제 접근 브루트 포스 단계의 문제 답게 브루트 포스 알고리즘을 사용하여 해결해보자. 이중 for문으로 x 와 y 가 -999 ~ 999인 모든 경우를 확인하며 식이 성립될 때까지 반복하자. 3. 문제 풀이 #include using namespace std; int main() { int a, b, c, d, e, f, out = 0; cin >> a >> b >> c >> d >> e >> f; for (int i = -999; i
1. 문제 상세 https://www.acmicpc.net/problem/2231 2. 문제 접근 입력받은 수 N 의 생성자를 구하자. 이를 위해 1부터 N 까지의 수들을 확인하며 그 수와 각 자릿수를 더한 값이 N이 되는 첫 번째 경우 그 수를 출력하자. 3. 문제 풀이 #include using namespace std; int main() { int n, ans = 0; cin >> n; for (int i = 1; i < n; i++) { int sum = 0, a = i; while (a != 0) { sum += a % 10; a /= 10; } if (sum + i == n) { ans = i; break; } } cout
1. 문제 상세 https://www.acmicpc.net/problem/2798 2. 문제 접근 카드 갯수 N, 숫자 M, 카드의 수들을 입력받는다. 카드 갯수는 최대 100개 까지 입력받을 수 있으므로 카드 수들을 저장할 크기 100의 정수 배열을 사용하자. 먼저 반복문을 카드 갯수만큼 반복하며 정수를 입력받아 카드 수 배열에 저장한다. 이제 모든 카드에서 세 개를 골라 더한 후 그 수가 M 보다 작거나 같은지 확인하자. 그리고 M 과 최대한 가까운지 확인하기 위해 블랙잭을 저장할 변수를 선언하여 0으로 초기화 한 후 세 카드의 합이 변수의 값보다 클 때 그 합을 변수에 저장하도록 하자. 카드 배열에서 입력한 카드 수들은 배열의 n - 1 번 인덱스 까지 저장되어 있다. 모든 카드 조합을 확인하기 위..
Dry_p
'백준 - 단계별로 풀어보기/브루트 포스' 카테고리의 글 목록