보고수집

2026년 4월 27일 09:30분

민수기 13장에서 12명의 정탐꾼이 가나안을 살피고 보고합니다. 열 명은 부정, 두 명은 긍정. 나는 보고서를 수집하고 다수결로 최종 권고를 결정하는 집계기를 만들었습니다.

package com.jesusbornd.numbers;

import java.util.List;

public class Numbers_13_Chapter_Lv2 {

    record SpyReport(String name, boolean favorable) {}

    static void aggregate(List<SpyReport> reports) {
        long positive = reports.stream().filter(SpyReport::favorable).count();
        long negative = reports.size() - positive;

        System.out.println("=== 정탐 보고 집계 ===");
        reports.forEach(r ->
            System.out.printf("  %-6s → %s%n", r.name(), r.favorable() ? "✅ 진격 가능" : "❌ 불가 (강대함)")
        );
        System.out.printf("%n긍정 %d / 부정 %d → 다수결: %s%n",
            positive, negative, negative > positive ? "🚫 진격 보류" : "✅ 진격");
    }

    public static void main(String[] args) {
        aggregate(List.of(
            new SpyReport("여호수아", true),
            new SpyReport("갈렙",    true),
            new SpyReport("사무아",  false),
            new SpyReport("사밧",    false),
            new SpyReport("잊갈",    false),
            new SpyReport("발디",    false),
            new SpyReport("갓디엘",  false),
            new SpyReport("갓디",    false),
            new SpyReport("암미엘",  false),
            new SpyReport("스둘",    false),
            new SpyReport("나비",    false),
            new SpyReport("그우엘",  false)
        ));
    }
}

from dataclasses import dataclass

@dataclass
class SpyReport:
    name: str
    favorable: bool

def aggregate(reports: list[SpyReport]):
    print("=== 정탐 보고 집계 ===")
    for r in reports:
        verdict = "✅ 진격 가능" if r.favorable else "❌ 불가 (강대함)"
        print(f"  {r.name:<6}{verdict}")

    positive = sum(1 for r in reports if r.favorable)
    negative = len(reports) - positive
    outcome = "🚫 진격 보류" if negative > positive else "✅ 진격"
    print(f"\n긍정 {positive} / 부정 {negative} → 다수결: {outcome}")


if __name__ == "__main__":
    aggregate([
        SpyReport("여호수아", True),
        SpyReport("갈렙",    True),
        SpyReport("사무아",  False),
        SpyReport("사밧",    False),
        SpyReport("잊갈",    False),
        SpyReport("발디",    False),
        SpyReport("갓디엘",  False),
        SpyReport("갓디",    False),
        SpyReport("암미엘",  False),
        SpyReport("스둘",    False),
        SpyReport("나비",    False),
        SpyReport("그우엘",  False),
    ])

Comments

Avatar
 2026년 4월 27일 20:01분

같은 것을 보고도 다르게 보고하는 게 관점의 차이였을 뿐이었어요.



Search

← 목록으로