분류 전체보기

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 번 인덱스 까지 저장되어 있다. 모든 카드 조합을 확인하기 위..
1. 문제 상세 https://www.acmicpc.net/problem/24313 2. 문제 접근 a1, a0, c, n0 을 입력받고 각 수식을 비교하고 결과를 출력. a1 * n + a0 값이 c * n 값보다 작거나 같으면 1을, 아니라면 0을 출력한다. 여기서 주의할 사항이 있다. 만약 a0 가 음수가 되는 경우, n0 에서는 조건이 성립하지만 다른 n 의 경우에 위의 조건이 성립되지 않는 경우가 있다. a1 = 5, a0 = -4, c = 3, n0 = 1 이라고 가정하자. 5n - 4 ≤ 3n 에서 n0 가 1이고 1 ≤ 3 이므로 식이 성립한다. 하지만 n 이 3이 된다면 11 ≤ 9 가 되어서 조건이 성립하지 않게 된다. 따라서 a0 가 음수인 경우에 a1 *n 가 c * n 보다 항삭 ..
1. 문제 상세 https://www.acmicpc.net/problem/24267 2. 문제 접근 주어진 알고리즘을 보고 수행 횟수를 확인해보자. 이를 위해 예제를 통해 루프에서 i 와 j 의 상태를 확인해보자. i j k 1 2 3, 4, 5, 6, 7 3 4, 5, 6, 7 4 5, 6, 7 5 6, 7 6 7 2 3 4, 5, 6, 7 4 5, 6, 7 5 6, 7 6 7 3 4 5, 6, 7 5 6, 7 6 7 4 5 6, 7 6 7 5 6 7 수행 횟수가 (5 + 4 +3 + 2 + 1) + (4 + 3 + 2 + 1) + (3 + 2 + 1) + (2 + 1) + 1 번 이라는 것을 알 수 있다. 이를 시그마 공식으로 변환하면 위와 같은 식으로 계산한다. 따라서 시간복잡도는 O(N3)이 되고..
Dry_p
'분류 전체보기' 카테고리의 글 목록 (8 Page)