브루트 포스 알고리즘(brute force)
: 완전 탐색이라고 하며, brute : 무식한 , force : 힘
무식하게 모든 경우를 다 탐색하는 알고리즘 이다.
따라서, 원하는 결과를 구하기 위해 모든 영역을 다 탐색하는 방법이다.
1. 블랙잭
www.acmicpc.net/problem/2798
2798번: 블랙잭
첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장
www.acmicpc.net

#블랙잭
n, m = map(int, input().split())
card = list(map(int, input().split()))
result = 0
for i in range(n):
for j in range(i+1, n):
for k in range(j+1, n):
if card[i] + card[j] + card[k] > m:
continue
else:
result = max(result, card[i]+card[j]+card[k])
print(result)
브루트 포스 알고리즘에 해당하는 문제이다.
for문을 3개로 하여 카드를 3장을 뽑는 경우를 모두 탐색하게 한다.
그 후, max함수를 이용하여, result에 들어간 값과 새로 합한 값 중 큰 값을 구하여 가장 큰 값을 구하도록 한다.
2. ACM호텔
www.acmicpc.net/problem/10250
10250번: ACM 호텔
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수
www.acmicpc.net

#ACM호텔
t = int(input())
for i in range(t):
a = 0
h, w, n = map(int, input().split())
for k in range(w):
for m in range(h):
a += 1
if a == n:
print((m+1)*100+(k+1))
반응형