반란종료

2026년 11월 5일 09:30분

사무엘하 18장에서 압살롬이 나무에 머리가 걸려 요압에게 죽임을 당합니다. 반란 프로세스가 강제 종료됩니다. 나는 반란 상태 머신의 종료 조건을 구현했습니다.

package com.jesusbornd.samuel2;

public class Samuel2_18_Chapter_Lv2 {
    enum MutinyState { ACTIVE, TRAPPED, TERMINATED }
    static MutinyState transition(MutinyState current, String event) {
        return switch (current) {
            case ACTIVE    -> event.equals("trapped") ? MutinyState.TRAPPED : current;
            case TRAPPED   -> event.equals("killed")  ? MutinyState.TERMINATED : current;
            default        -> current;
        };
    }
    public static void main(String[] args) {
        var state = MutinyState.ACTIVE;
        for (String e : new String[]{"trapped", "killed"}) {
            state = transition(state, e);
            System.out.println("이벤트: " + e + " → 상태: " + state);
        }
    }
}

def transition(state: str, event: str) -> str:
    if state == "ACTIVE" and event == "trapped": return "TRAPPED"
    if state == "TRAPPED" and event == "killed": return "TERMINATED"
    return state

state = "ACTIVE"
for event in ["trapped", "killed"]:
    state = transition(state, event)
    print(f"이벤트: {event} → 상태: {state}")

Comments

Avatar
 2026년 11월 5일 11:38분

반란은 반드시 종료됩니다.



Search

← 목록으로