개발일지/Algorithm

백준 - 14586 사탕나누기 [완전탐색]

E-room 2023. 9. 3. 21:22
728x90

 

 

14568번: 2017 연세대학교 프로그래밍 경시대회

규칙에 맞게 사탕을 분배하는 경우의 수를 출력한다. 택희, 영훈이, 남규가 받은 사탕의 수를 각각 A, B, C개라고 할 때, 서로 다른 (A, B, C) 순서쌍의 수를 세면 된다. 만일 규칙에 맞게 사탕을 분

www.acmicpc.net

 

해당 문제는 규칙에 맞게 사탕을 나눌 수 있는 경우의 수를 계산하는 문제입니다.

 

문제 조건을 보면 시간과 메모리가 충분하므로 완전탐색으로 구현하면 손쉽게 풀 수 있습니다.

 

# Python
N = int(input())

count = 0
for A in range(2, N - 1, 2):
    for B in range(1, N - A):
        C = N - A - B
        if C - B >= 2:
            count += 1

print(count)
// Java
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        int count = 0;
        for (int a = 2; a <= n; a += 2) {
            for (int b = 1; a + b <= n - 1; b++) {
                int c = n - a - b;
                if (c - b >= 2) {
                    count++;
                }
            }
        }

        System.out.println(count);
    }
}

 

 

 

깃허브 소스코드

https://github.com/Ksiyeong/Algorithm/tree/main/%EB%B0%B1%EC%A4%80/Bronze/14568.%E2%80%852017%E2%80%85%EC%97%B0%EC%84%B8%EB%8C%80%ED%95%99%EA%B5%90%E2%80%85%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%E2%80%85%EA%B2%BD%EC%8B%9C%EB%8C%80%ED%9A%8C

728x90