• individual

    import random
     
    class Individual:
        def __init__(self, name: str, fitness: int) -> None:
            self.name = name
            self.fitness = fitness
     
        def __repr__(self):
            return f"{self.name}: {self.fitness}"
     
        @classmethod
        def create_random(cls, name: str) -> 'Individual':
            # 예시로 임의의 fitness 값을 설정 (1~10)
            fitness = random.randint(1, 10)
            return cls(name, fitness)
     
        @classmethod
        def create_random_population(cls, size: int) -> list['Individual']:
            # 개체군을 생성할 이름들 (A, B, C, D, E)
            # names = ['A', 'B', 'C', 'D', 'E']         # 얘 때문에 기존 코드로 실행시 개체군이 5개 밖에 나오지 않는 문제 발생
            names = [chr(65 + i) for i in range(size)]  # 얘로 바꾸니 해결 됨 65는 'A'의 ASCII 코드
            return [cls.create_random(name) for name in names[:size]]