포스트

(BOJ)-14568, Python

(BOJ)-14568, Python

문제 요약

출처: (BOJ)14568 - 2017 연세대학교 프로그래밍 경시대회

N개의 사탕이 주어졌을 때, 택희, 영훈, 남규가 아래 조건에 맞추어 적절히 사탕을 나누어 가질 수 있는 경우의 수를 구하는 문제이다.

사탕 분배에 대한 조건은 다음과 같다:

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

접근 과정

1. 완전탐색 접근

세 사람이 사탕을 가질 수 있는 모든 경우의 수를 돌며, 조건을 통과하는 카운트를 세보자..!

코드 구현

1
2
3
4
5
6
7
8
9
10
candy = int(input())
count = 0
for T in range(1, candy+1):
    for N in range(1, candy+1):
        for Y in range(1, candy+1):
            if T + N + Y == candy:
                if N >= Y+2:
                    if T % 2 == 0:
                        count +=1
print(count)

회고

완전탐색적 접근으로 쉽게 해결할 수 있었다. 완전탐색은 가장 무식한 방법이지만, 충분한 시간만 주어진다면 해결할 수 있다..!

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.