Search

이차배열5_문제08_복권셋트

대분류
STEP08 이차리스트
소분류
이차리스트5_문제

영상

문제

''' [문제] 복권 1개당 7칸으로, 총 5개의 복권을 제작하려 한다. 복권 1줄은 1 또는 7의 랜덤 숫자로 구성되어 있다. 7이 연속으로 3개 이상이면 "당첨"이고, 그 미만은 "꽝"이다. 5개 중에 딱 1개만 당첨 복권이고 나머지 4개는 꽝인 복권을 랜덤으로 생성해서 출력하시오. 예) 1177117 (꽝) 1117771 (당첨) 7171117 (꽝) 7711771 (꽝) 7171717 (꽝) ''' lotto = [0, 0, 0, 0, 0]
Python
복사

해설

''' [문제] 복권 1개당 7칸으로, 총 5개의 복권을 제작하려 한다. 복권 1줄은 1 또는 7의 랜덤 숫자로 구성되어 있다. 7이 연속으로 3개 이상이면 "당첨"이고, 그 미만은 "꽝"이다. 5개 중에 딱 1개만 당첨 복권이고 나머지 4개는 꽝인 복권을 랜덤으로 생성해서 출력하시오. 예) 1177117 (꽝) 1117771 (당첨) 7171117 (꽝) 7711771 (꽝) 7171717 (꽝) ''' import random lotto = [0, 0, 0, 0, 0] doubleCheck = False i = 0 while i < 5: temp = [0, 0, 0, 0, 0, 0, 0] check = False count = 0 j = 0 while j < 7: r = random.randint(0, 1) if r == 0: temp[j] = 7 count += 1 else: temp[j] = 1 count = 0 if count >= 3: check = True j += 1 lotto[i] = temp # 당첨 복권이 안나오면 if doubleCheck == False and check == False: i -= 1 # 당첨 복권이 두 번 나왔으면 elif doubleCheck == True and check == True: i -= 1 # 당첨 복권이 나오면 elif doubleCheck == False and check == True: doubleCheck = True i += 1 # 셔플 for i in range(10): r = random.randint(0, 4) temp = lotto[0] lotto[0] = lotto[r] lotto[r] = temp # 출력 for i in range(len(lotto)): check = False count = 0 for j in range(len(lotto[i])): if lotto[i][j] == 7: count += 1 else: count = 0 if count >= 3: check = True print(lotto[i][j], end="") if check: print(" (당첨)") else: print(" (꽝)")
Python
복사