리스트 안에 있는 리스트A에 대해 거꾸로 된 리스트B 제거

조회수 437회
rstList = []

for seat1 in range(1, 7):
    for seat2 in range(1, 7):
        for seat3 in range(1, 7):
            for seat4 in range(1, 7):
                for seat5 in range(1, 7):
                    for seat6 in range(1, 7):
                        if seat1 != seat2 and seat1 != seat3 and seat1 != seat4 and seat1 != seat5 and seat1 != seat6 and \
                           seat2 != seat3 and seat2 != seat4 and seat2 != seat5 and seat2 != seat6 and \
                           seat3 != seat4 and seat3 != seat5 and seat3 != seat6 and \
                           seat4 != seat5 and seat4 != seat6 and \
                           seat5 != seat6:
                            if 1 in (seat1, seat3, seat4, seat6) and \
                               2 in (seat1, seat3, seat4, seat6):
                                rstList.append([seat1, seat2, seat3, seat4, seat5, seat6])

for j in range(len(rstList)):
    print('{}, {}번째'.format(rstList[j], j + 1))

이 코드에서 결과가

[1, 3, 2, 4, 5, 6], 1번째
[1, 3, 2, 4, 6, 5], 2번째
[1, 3, 2, 5, 4, 6], 3번째
[1, 3, 2, 5, 6, 4], 4번째
[1, 3, 2, 6, 4, 5], 5번째
[1, 3, 2, 6, 5, 4], 6번째
[1, 3, 4, 2, 5, 6], 7번째
[1, 3, 4, 2, 6, 5], 8번째
[1, 3, 4, 5, 6, 2], 9번째
[1, 3, 4, 6, 5, 2], 10번째
[1, 3, 5, 2, 4, 6], 11번째
[1, 3, 5, 2, 6, 4], 12번째
[1, 3, 5, 4, 6, 2], 13번째
[1, 3, 5, 6, 4, 2], 14번째
[1, 3, 6, 2, 4, 5], 15번째
[1, 3, 6, 2, 5, 4], 16번째
[1, 3, 6, 4, 5, 2], 17번째
[1, 3, 6, 5, 4, 2], 18번째
[1, 4, 2, 3, 5, 6], 19번째
[1, 4, 2, 3, 6, 5], 20번째
[1, 4, 2, 5, 3, 6], 21번째
[1, 4, 2, 5, 6, 3], 22번째
[1, 4, 2, 6, 3, 5], 23번째
[1, 4, 2, 6, 5, 3], 24번째
[1, 4, 3, 2, 5, 6], 25번째
[1, 4, 3, 2, 6, 5], 26번째
[1, 4, 3, 5, 6, 2], 27번째
[1, 4, 3, 6, 5, 2], 28번째
[1, 4, 5, 2, 3, 6], 29번째
[1, 4, 5, 2, 6, 3], 30번째
[1, 4, 5, 3, 6, 2], 31번째
[1, 4, 5, 6, 3, 2], 32번째
[1, 4, 6, 2, 3, 5], 33번째
[1, 4, 6, 2, 5, 3], 34번째
[1, 4, 6, 3, 5, 2], 35번째
[1, 4, 6, 5, 3, 2], 36번째
[1, 5, 2, 3, 4, 6], 37번째
[1, 5, 2, 3, 6, 4], 38번째
[1, 5, 2, 4, 3, 6], 39번째
[1, 5, 2, 4, 6, 3], 40번째
[1, 5, 2, 6, 3, 4], 41번째
[1, 5, 2, 6, 4, 3], 42번째
[1, 5, 3, 2, 4, 6], 43번째
[1, 5, 3, 2, 6, 4], 44번째
[1, 5, 3, 4, 6, 2], 45번째
[1, 5, 3, 6, 4, 2], 46번째
[1, 5, 4, 2, 3, 6], 47번째
[1, 5, 4, 2, 6, 3], 48번째
[1, 5, 4, 3, 6, 2], 49번째
[1, 5, 4, 6, 3, 2], 50번째
[1, 5, 6, 2, 3, 4], 51번째
[1, 5, 6, 2, 4, 3], 52번째
[1, 5, 6, 3, 4, 2], 53번째
[1, 5, 6, 4, 3, 2], 54번째
[1, 6, 2, 3, 4, 5], 55번째
[1, 6, 2, 3, 5, 4], 56번째
[1, 6, 2, 4, 3, 5], 57번째
[1, 6, 2, 4, 5, 3], 58번째
[1, 6, 2, 5, 3, 4], 59번째
[1, 6, 2, 5, 4, 3], 60번째
[1, 6, 3, 2, 4, 5], 61번째
[1, 6, 3, 2, 5, 4], 62번째
[1, 6, 3, 4, 5, 2], 63번째
[1, 6, 3, 5, 4, 2], 64번째
[1, 6, 4, 2, 3, 5], 65번째
[1, 6, 4, 2, 5, 3], 66번째
[1, 6, 4, 3, 5, 2], 67번째
[1, 6, 4, 5, 3, 2], 68번째
[1, 6, 5, 2, 3, 4], 69번째
[1, 6, 5, 2, 4, 3], 70번째
[1, 6, 5, 3, 4, 2], 71번째
[1, 6, 5, 4, 3, 2], 72번째
[2, 3, 1, 4, 5, 6], 73번째
[2, 3, 1, 4, 6, 5], 74번째
[2, 3, 1, 5, 4, 6], 75번째
[2, 3, 1, 5, 6, 4], 76번째
[2, 3, 1, 6, 4, 5], 77번째
[2, 3, 1, 6, 5, 4], 78번째
[2, 3, 4, 1, 5, 6], 79번째
[2, 3, 4, 1, 6, 5], 80번째
[2, 3, 4, 5, 6, 1], 81번째
[2, 3, 4, 6, 5, 1], 82번째
[2, 3, 5, 1, 4, 6], 83번째
[2, 3, 5, 1, 6, 4], 84번째
[2, 3, 5, 4, 6, 1], 85번째
[2, 3, 5, 6, 4, 1], 86번째
[2, 3, 6, 1, 4, 5], 87번째
[2, 3, 6, 1, 5, 4], 88번째
[2, 3, 6, 4, 5, 1], 89번째
[2, 3, 6, 5, 4, 1], 90번째
[2, 4, 1, 3, 5, 6], 91번째
[2, 4, 1, 3, 6, 5], 92번째
[2, 4, 1, 5, 3, 6], 93번째
[2, 4, 1, 5, 6, 3], 94번째
[2, 4, 1, 6, 3, 5], 95번째
[2, 4, 1, 6, 5, 3], 96번째
[2, 4, 3, 1, 5, 6], 97번째
[2, 4, 3, 1, 6, 5], 98번째
[2, 4, 3, 5, 6, 1], 99번째
[2, 4, 3, 6, 5, 1], 100번째
[2, 4, 5, 1, 3, 6], 101번째
[2, 4, 5, 1, 6, 3], 102번째
[2, 4, 5, 3, 6, 1], 103번째
[2, 4, 5, 6, 3, 1], 104번째
[2, 4, 6, 1, 3, 5], 105번째
[2, 4, 6, 1, 5, 3], 106번째
[2, 4, 6, 3, 5, 1], 107번째
[2, 4, 6, 5, 3, 1], 108번째
[2, 5, 1, 3, 4, 6], 109번째
[2, 5, 1, 3, 6, 4], 110번째
[2, 5, 1, 4, 3, 6], 111번째
[2, 5, 1, 4, 6, 3], 112번째
[2, 5, 1, 6, 3, 4], 113번째
[2, 5, 1, 6, 4, 3], 114번째
[2, 5, 3, 1, 4, 6], 115번째
[2, 5, 3, 1, 6, 4], 116번째
[2, 5, 3, 4, 6, 1], 117번째
[2, 5, 3, 6, 4, 1], 118번째
[2, 5, 4, 1, 3, 6], 119번째
[2, 5, 4, 1, 6, 3], 120번째
[2, 5, 4, 3, 6, 1], 121번째
[2, 5, 4, 6, 3, 1], 122번째
[2, 5, 6, 1, 3, 4], 123번째
[2, 5, 6, 1, 4, 3], 124번째
[2, 5, 6, 3, 4, 1], 125번째
[2, 5, 6, 4, 3, 1], 126번째
[2, 6, 1, 3, 4, 5], 127번째
[2, 6, 1, 3, 5, 4], 128번째
[2, 6, 1, 4, 3, 5], 129번째
[2, 6, 1, 4, 5, 3], 130번째
[2, 6, 1, 5, 3, 4], 131번째
[2, 6, 1, 5, 4, 3], 132번째
[2, 6, 3, 1, 4, 5], 133번째
[2, 6, 3, 1, 5, 4], 134번째
[2, 6, 3, 4, 5, 1], 135번째
[2, 6, 3, 5, 4, 1], 136번째
[2, 6, 4, 1, 3, 5], 137번째
[2, 6, 4, 1, 5, 3], 138번째
[2, 6, 4, 3, 5, 1], 139번째
[2, 6, 4, 5, 3, 1], 140번째
[2, 6, 5, 1, 3, 4], 141번째
[2, 6, 5, 1, 4, 3], 142번째
[2, 6, 5, 3, 4, 1], 143번째
[2, 6, 5, 4, 3, 1], 144번째
[3, 4, 1, 2, 5, 6], 145번째
[3, 4, 1, 2, 6, 5], 146번째
[3, 4, 1, 5, 6, 2], 147번째
[3, 4, 1, 6, 5, 2], 148번째
[3, 4, 2, 1, 5, 6], 149번째
[3, 4, 2, 1, 6, 5], 150번째
[3, 4, 2, 5, 6, 1], 151번째
[3, 4, 2, 6, 5, 1], 152번째
[3, 4, 5, 1, 6, 2], 153번째
[3, 4, 5, 2, 6, 1], 154번째
[3, 4, 6, 1, 5, 2], 155번째
[3, 4, 6, 2, 5, 1], 156번째
[3, 5, 1, 2, 4, 6], 157번째
[3, 5, 1, 2, 6, 4], 158번째
[3, 5, 1, 4, 6, 2], 159번째
[3, 5, 1, 6, 4, 2], 160번째
[3, 5, 2, 1, 4, 6], 161번째
[3, 5, 2, 1, 6, 4], 162번째
[3, 5, 2, 4, 6, 1], 163번째
[3, 5, 2, 6, 4, 1], 164번째
[3, 5, 4, 1, 6, 2], 165번째
[3, 5, 4, 2, 6, 1], 166번째
[3, 5, 6, 1, 4, 2], 167번째
[3, 5, 6, 2, 4, 1], 168번째
[3, 6, 1, 2, 4, 5], 169번째
[3, 6, 1, 2, 5, 4], 170번째
[3, 6, 1, 4, 5, 2], 171번째
[3, 6, 1, 5, 4, 2], 172번째
[3, 6, 2, 1, 4, 5], 173번째
[3, 6, 2, 1, 5, 4], 174번째
[3, 6, 2, 4, 5, 1], 175번째
[3, 6, 2, 5, 4, 1], 176번째
[3, 6, 4, 1, 5, 2], 177번째
[3, 6, 4, 2, 5, 1], 178번째
[3, 6, 5, 1, 4, 2], 179번째
[3, 6, 5, 2, 4, 1], 180번째
[4, 3, 1, 2, 5, 6], 181번째
[4, 3, 1, 2, 6, 5], 182번째
[4, 3, 1, 5, 6, 2], 183번째
[4, 3, 1, 6, 5, 2], 184번째
[4, 3, 2, 1, 5, 6], 185번째
[4, 3, 2, 1, 6, 5], 186번째
[4, 3, 2, 5, 6, 1], 187번째
[4, 3, 2, 6, 5, 1], 188번째
[4, 3, 5, 1, 6, 2], 189번째
[4, 3, 5, 2, 6, 1], 190번째
[4, 3, 6, 1, 5, 2], 191번째
[4, 3, 6, 2, 5, 1], 192번째
[4, 5, 1, 2, 3, 6], 193번째
[4, 5, 1, 2, 6, 3], 194번째
[4, 5, 1, 3, 6, 2], 195번째
[4, 5, 1, 6, 3, 2], 196번째
[4, 5, 2, 1, 3, 6], 197번째
[4, 5, 2, 1, 6, 3], 198번째
[4, 5, 2, 3, 6, 1], 199번째
[4, 5, 2, 6, 3, 1], 200번째
[4, 5, 3, 1, 6, 2], 201번째
[4, 5, 3, 2, 6, 1], 202번째
[4, 5, 6, 1, 3, 2], 203번째
[4, 5, 6, 2, 3, 1], 204번째
[4, 6, 1, 2, 3, 5], 205번째
[4, 6, 1, 2, 5, 3], 206번째
[4, 6, 1, 3, 5, 2], 207번째
[4, 6, 1, 5, 3, 2], 208번째
[4, 6, 2, 1, 3, 5], 209번째
[4, 6, 2, 1, 5, 3], 210번째
[4, 6, 2, 3, 5, 1], 211번째
[4, 6, 2, 5, 3, 1], 212번째
[4, 6, 3, 1, 5, 2], 213번째
[4, 6, 3, 2, 5, 1], 214번째
[4, 6, 5, 1, 3, 2], 215번째
[4, 6, 5, 2, 3, 1], 216번째
[5, 3, 1, 2, 4, 6], 217번째
[5, 3, 1, 2, 6, 4], 218번째
[5, 3, 1, 4, 6, 2], 219번째
[5, 3, 1, 6, 4, 2], 220번째
[5, 3, 2, 1, 4, 6], 221번째
[5, 3, 2, 1, 6, 4], 222번째
[5, 3, 2, 4, 6, 1], 223번째
[5, 3, 2, 6, 4, 1], 224번째
[5, 3, 4, 1, 6, 2], 225번째
[5, 3, 4, 2, 6, 1], 226번째
[5, 3, 6, 1, 4, 2], 227번째
[5, 3, 6, 2, 4, 1], 228번째
[5, 4, 1, 2, 3, 6], 229번째
[5, 4, 1, 2, 6, 3], 230번째
[5, 4, 1, 3, 6, 2], 231번째
[5, 4, 1, 6, 3, 2], 232번째
[5, 4, 2, 1, 3, 6], 233번째
[5, 4, 2, 1, 6, 3], 234번째
[5, 4, 2, 3, 6, 1], 235번째
[5, 4, 2, 6, 3, 1], 236번째
[5, 4, 3, 1, 6, 2], 237번째
[5, 4, 3, 2, 6, 1], 238번째
[5, 4, 6, 1, 3, 2], 239번째
[5, 4, 6, 2, 3, 1], 240번째
[5, 6, 1, 2, 3, 4], 241번째
[5, 6, 1, 2, 4, 3], 242번째
[5, 6, 1, 3, 4, 2], 243번째
[5, 6, 1, 4, 3, 2], 244번째
[5, 6, 2, 1, 3, 4], 245번째
[5, 6, 2, 1, 4, 3], 246번째
[5, 6, 2, 3, 4, 1], 247번째
[5, 6, 2, 4, 3, 1], 248번째
[5, 6, 3, 1, 4, 2], 249번째
[5, 6, 3, 2, 4, 1], 250번째
[5, 6, 4, 1, 3, 2], 251번째
[5, 6, 4, 2, 3, 1], 252번째
[6, 3, 1, 2, 4, 5], 253번째
[6, 3, 1, 2, 5, 4], 254번째
[6, 3, 1, 4, 5, 2], 255번째
[6, 3, 1, 5, 4, 2], 256번째
[6, 3, 2, 1, 4, 5], 257번째
[6, 3, 2, 1, 5, 4], 258번째
[6, 3, 2, 4, 5, 1], 259번째
[6, 3, 2, 5, 4, 1], 260번째
[6, 3, 4, 1, 5, 2], 261번째
[6, 3, 4, 2, 5, 1], 262번째
[6, 3, 5, 1, 4, 2], 263번째
[6, 3, 5, 2, 4, 1], 264번째
[6, 4, 1, 2, 3, 5], 265번째
[6, 4, 1, 2, 5, 3], 266번째
[6, 4, 1, 3, 5, 2], 267번째
[6, 4, 1, 5, 3, 2], 268번째
[6, 4, 2, 1, 3, 5], 269번째
[6, 4, 2, 1, 5, 3], 270번째
[6, 4, 2, 3, 5, 1], 271번째
[6, 4, 2, 5, 3, 1], 272번째
[6, 4, 3, 1, 5, 2], 273번째
[6, 4, 3, 2, 5, 1], 274번째
[6, 4, 5, 1, 3, 2], 275번째
[6, 4, 5, 2, 3, 1], 276번째
[6, 5, 1, 2, 3, 4], 277번째
[6, 5, 1, 2, 4, 3], 278번째
[6, 5, 1, 3, 4, 2], 279번째
[6, 5, 1, 4, 3, 2], 280번째
[6, 5, 2, 1, 3, 4], 281번째
[6, 5, 2, 1, 4, 3], 282번째
[6, 5, 2, 3, 4, 1], 283번째
[6, 5, 2, 4, 3, 1], 284번째
[6, 5, 3, 1, 4, 2], 285번째
[6, 5, 3, 2, 4, 1], 286번째
[6, 5, 4, 1, 3, 2], 287번째
[6, 5, 4, 2, 3, 1], 288번째

으로 나옵니다. 여기서, [1, 3, 2, 4, 5, 6][6, 5, 4, 2, 3, 1] 처럼 순서가 뒤집힌 경우는 같은 경우로 처리해야 합니다. 이런 경우는 어떻게 해야 중복 값을 빼낼 수 있을까요?

그리고 if문에 있는 조건문을 간추릴 방법이 있나요?

2 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
    rstList = []
    
    for seat1 in range(1, 7):
        for seat2 in range(1, 7):
            for seat3 in range(1, 7):
                for seat4 in range(1, 7):
                    for seat5 in range(1, 7):
                        for seat6 in range(1, 7):
                            if set((seat1, seat2, seat3, seat4, seat5, seat6)) == set(range(1, 7)):
                                if 1 in (seat1, seat3, seat4, seat6) and \
                                   2 in (seat1, seat3, seat4, seat6) and \
                                   (seat6, seat5, seat4, seat3, seat2, seat1) not in rstList:
                                    rstList.append((seat1, seat2, seat3, seat4, seat5, seat6))
    
    for j in range(len(rstList)):
        print('{}, {}번째'.format(rstList[j], j + 1))
    

    itertools.permutations 도 확인해 보세요.

  • from itertools import permutations
    
    rstList = []
    for permu in permutations(range(1, 7), 6):
        if {1, 2}.issubset({permu[0], permu[2], permu[3], permu[5]}) \
                and permu[::-1] not in rstList:
            rstList.append(permu)
    print(len(rstList)) # 144
    

    질문 올린지 오래되서 이걸 보실지 모르겠네요.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 이제야 봤네요.. 이런 방법도 있겠군요! Promixium 2020.3.2 13:57

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)