반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 세마포어 구현
- 백준 11725
- 백준 17219
- C언어 연산자
- 백준 2161
- 9012번
- 백준 9012번
- C언어 헤더파일
- 17219번
- 프로그래밍입문
- 2161번
- 코딩입문
- 백준 10773
- 백준 2161 풀이
- 프로그래밍 C
- 백준 10867번
- C언어 문법
- C언어 기초
- 운영체제
- 10867
- 완전 탐색
- 프로그램 기본 구성
- 코딩
- 10773
- The Producer-Consumer Problem
- 절차지향적 프로그래밍
- c언어
- C언어 main함수
- 백준
- 11725
Archives
- Today
- Total
Silver
[백준] 3040번: 백설 공주와 일곱 난쟁이 - 완전 탐색 (Brute Force) 본문
반응형
1. Brute Force
- 정의
- 완전 탐색 기법 중 하나로, 반복문, 조건문을 통해 문제를 해결하는 기법
- 예시 - 3040번: 백설 공주와 일곱 난쟁이
https://www.acmicpc.net/problem/3040
3040번: 백설 공주와 일곱 난쟁이
매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다.
www.acmicpc.net
- 풀이
- 아홉 난쟁이 중 일곱난쟁이의 합은 100을 다르게 생각해보면, 아홉 난쟁이 중 두 가짜 난쟁이를 선택한 경우 찾기 => 9C2
- 아홉 난쟁이의 합에서 100를 빼면, 두 가짜 난쟁이의 합이 나옴
- 이를 토대로, 입력받은 난쟁이를 이중 for문으로 조합하여 가짜 난쟁이의 합이 나오는 경우를 찾아 제외하여 출력
- 코드
#include<iostream>
using namespace std;
int main() {
int array[9];
int total_dwarf = 0; // 아홉난쟁이의 모든 숫자를 더한 값
for (int i = 0; i < 9; i++) cin >> array[i];
for (auto arr : array) total_dwarf += arr;
int Non_dwarf = total_dwarf - 100; // 아홉난쟁이 중 가짜 난쟁이 둘의 합
// 난쟁이 둘의 합이 Non_dwarf가 되는 경우 찾기
for (int i = 0; i < 9; i++)
for (int j = i + 1; j < 9; j++)
if (array[i] + array[j] == Non_dwarf)
for (auto arr : array)
if (array[i] != arr && array[j] != arr)
cout << arr << "\n";
}
반응형
'알고리즘' 카테고리의 다른 글
[백준] 24444번: 알고리즘 수업 - 너비 우선 탐색 1 C++ (1) | 2024.02.12 |
---|---|
[백준] 15828번: Router C++ (1) | 2024.02.11 |
[백준] 2161번: 카드1 C++ (1) | 2024.02.11 |
[백준] 9012번: 괄호 C++ (1) | 2024.02.07 |
[백준] 1010번: 다리 놓기 C++ (0) | 2024.01.18 |