알고리즘적으로가 아니라


좀더 코드적으로 멍청하고 길게 짜보았음




if 문 남발하는건


input 범위내 모든짝수일때 하는 좀 뻔한거밖에 안떠올랐었는데


리스트에 접근하는거까지 전부 if문 남발해서 만들어봤음


예시는 input list의 원소개수가 3개 이하, 짝수는 2와 4만을 감지해서 내는애고


원소개수 4개까지 추가하면..



def a(a):

    b = []

    if a[0] == 2:

        b.append(2)

        if a[1] == 2:

            b.append(2)

            if a[2] == 2:

                b.append(2)

                if a[3] == 2:

                    b.append(2)

                elif a[3] == 4:

                    b.append(4)

            elif a[2] == 4:

                b.append(4)

                if a[3] == 2:

                    b.append(2)

                elif a[3] == 4:

                    b.append(4)

        elif a[1] == 4:

            b.append(4)

            if a[2] == 2:

                b.append(2)

                if a[3] == 2:

                    b.append(2)

                elif a[3] == 4:

                    b.append(4)

            elif a[2] == 4:

                b.append(4)

                if a[3] == 2:

                    b.append(2)

                elif a[3] == 4:

                    b.append(4)

    elif a[0] == 4:

        b.append(4)

        if a[1] == 2:

            b.append(2)

            if a[2] == 2:

                b.append(2)

                if a[3] == 2:

                    b.append(2)

                elif a[3] == 4:

                    b.append(4)

            elif a[2] == 4:

                b.append(4)

                if a[3] == 2:

                    b.append(2)

                elif a[3] == 4:

                    b.append(4)

        if a[1] == 4:

            b.append(4)

            if a[2] == 2:

                b.append(2)

                if a[3] == 2:

                    b.append(2)

                elif a[3] == 4:

                    b.append(4)

            elif a[2] == 4:

                b.append(4)

                if a[3] == 2:

                    b.append(2)

                elif a[3] == 4:

                    b.append(4)

    elif a[1] == 2:

        b.append(2)

        if a[2] == 2:

            b.append(2)

            if a[3] == 2:

                b.append(2)

            elif a[3] == 4:

                b.append(4)

        elif a[2] == 4:

            b.append(4)

            if a[3] == 2:

                b.append(2)

            elif a[3] == 4:

                b.append(4)

    elif a[1] == 4:

        b.append(4)

        if a[2] == 2:

            b.append(2)

            if a[3] == 2:

                b.append(2)

            elif a[3] == 4:

                b.append(4)

        elif a[2] == 4:

            b.append(4)

            if a[3] == 2:

                b.append(2)

            elif a[3] == 4:

                b.append(4)

    if a[2] == 2:

        b.append(2)

        if a[3] == 2:

            b.append(2)

        elif a[3] == 4:

            b.append(4)

    elif a[2] == 4:

        b.append(4)

        if a[3] == 2:

            b.append(2)

        elif a[3] == 4:

            b.append(4)

    elif a[3] == 2:

        b.append(2)

    elif a[3] == 4:

        b.append(4)

    return b




이런느낌..


이런식으로 input 범위가 정해진곳까지 짜면 개병신같이 길어지게 만들수 있을거같다..



이건 돌린 결과