반응형

문제 출처 :


https://www.acmicpc.net/problem/14568



알고리즘 분석 :


문제 해결에 필요한 사항

1. 부르트 포스


이 문제의 조건은 다음과 같다.


  • 남은 사탕은 없어야 한다.
  • 남규는 영훈이보다 2개 이상 많은 사탕을 가져야 한다.
  • 셋 중 사탕을 0개 받는 사람은 없어야 한다.
  • 택희가 받는 사탕의 수는 홀수개가 되어서는 안 된다.


이렇게 조건만 보면 상당히 까다롭다.


어떤 알고리즘으로 어떻게 접근해야할지 모호할 수 있지만, n 제한을 자세히 보면 100이다.


따라서 우리는 플로이드 워셜 알고리즘처럼 택희, 영훈, 남규를 각각 한명씩하여 3중 포문을 돌려 모든 경우에 대해 확인 할 수 있다.


3중 포문 내에서 위의 조건을 이용하면 문제를 쉽게 해결 할 수 있다.



소스 코드 : 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <cstdio>
 
using namespace std;
 
int main()
{
    int n;
    scanf("%d"&n);
 
    // 택희 영훈 남규
    int cnt = 0;
    for (int a = 1; a <= n; a++)
        for (int b = 1; b <= n; b++)
            for (int c = 1; c <= n; c++)
                if (a + b + c == n)
                    if (c >= b + && a % == 0)
                        cnt++;
    cout << cnt;
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus

반응형

'Applied > 알고리즘 문제풀이' 카테고리의 다른 글

[14584번] 암호 해독  (0) 2017.05.23
[14570번] 나무 위의 구슬  (0) 2017.05.14
[Codeground 12번] 방속의 거울  (0) 2017.05.10
[Codeground 4번] 다트 게임  (0) 2017.05.10
[Codeground 3번] 시험 공부  (0) 2017.05.09