본문 바로가기
프로그램

[파이썬] 문제 : -100에서 100 사이의 수 20를 랜덤생성해서 리스트 만들기

by 오디세이99 2022. 12. 23.
728x90
반응형

(문제)

-100 이상 100이하의 서로다른 정수 20개를 랜덤하게 생성해서 리스트에 추가한 뒤, 리스트를 출력

일단 여기까지는 아래 코드를 이용해서 리스트 출력을 했어요.

import random

random_list = [random.randint(-100, 100) for i in range(20)]

print(random_list)

 
문제는 아래입니다. 어떻게하는지 알려주세요

생성한 리스트에서 세 숫자를 더한 값이 0이 되는 경우가 있는지를 탐색합니다.

세 숫자를 더해서 0이 되는 경우가 있다면 0을,

세 숫자를 더해서 0이 되는 경우가 없다면 -1을 출력합니다.

(동일한 숫자를 여러번 선택하는 경우는 고려하지 않습니다.)

 

 

(방법)

import random

lst = [random.randint(-100, 100) for a in range(20)]    # -100~100 임의의 수 20개
print(lst)

flag = False                        # 0이 만들어지는지 확인 변수. 초기화 Flase
for a1 in range(len(lst)):                         # 3개의 수
    for a2 in range(a1+1,len(lst)):
        for a3 in range(a2+1, len(lst)):
            if lst[a1] + lst[a2] + lst[a3] == 0:  # 3개 수의 합이 0 인지 확인
                print(lst[a1], lst[a2], lst[a3], '/sum=',sum([lst[a1],lst[a2],lst[a3]]))
                flag = True                       # 3개 수의 합이 0 이면 flag변수 True
                break                             # 0인 경우 찾으면 종료
        if flag == True:                         # 0인 경우 찾으면 종료
            break
    if flag == True:                             # 0인 경우 찾으면 종료
        break
    
if flag == True:
    print(0)
else:
    print(-1)

728x90
반응형

댓글