Dev/Algorithm

[백준] 브루트 포스

VIPeveloper 2021. 3. 9. 23:23
728x90
반응형

- 모든 경우의 수를 다 해보는 것

- 다 해보는 시간이 크진 않아야 한다. = 문제의 제한시간을 넘지는 말아야 한다.

 

해결 3단계

1. 문제의 해결 가능한 경우의 수를 어림잡아보자.

0~9999? 음.. 그럼 10^4번 하면 되겠구만.. 이정도?

2. 가능한 모든 방법을 만들어보자.

for문? 순열? 재귀? ...

3. 각각의 방법을 이용해 답을 구해보자

이건 먼말인지 모르겠음.

 

그냥 다 해보기

 

일곱 난쟁이

https://www.acmicpc.net/problem/2309
더보기
def solution(arr, sum):
    ans = []
    for i in range(len(arr)):
        for j in range(i,len(arr)):
            if sum-arr[i]-arr[j] == 100:
                for k in arr:
                    if arr[i] == k or arr[j] == k:
                        continue
                    print(k)
                return 


arr = []
for _ in range(9):
    a = int(input())
    arr.append(a)
arr.sort()
solution(arr, sum(arr))

 

날짜 계산

https://www.acmicpc.net/problem/1476
더보기
arr = list(map(int,input().split()))

e, s, m = arr[0], arr[1], arr[2]
i = 1
a, b, c = 1, 1, 1
while True:
    if e == a and s == b and m == c:
        print(i)
        break
    i += 1

    a += 1
    b += 1
    c += 1

    if a == 16:
        a = 1
    if b == 29:
        b = 1
    if c == 20:
        c = 1
728x90
반응형