반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
11-07 11:40
관리 메뉴

ImJay

[SW Expert Academy] 18799. 평균의 평균 본문

SW Expert Academy/D4

[SW Expert Academy] 18799. 평균의 평균

ImJay 2023. 11. 18. 19:11
반응형

[SW Expert Academy] 18799. 평균의 평균

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


풀이

# 테스트 케이스의 수 T를 입력 받음
T = int(input())

# 부분집합의 평균을 계산하는 함수 정의
def avg(num):
    return sum(num) / len(num)

# 각 테스트 케이스에 대해 반복
for t in range(1, T + 1):
    # 집합의 크기 n 입력
    n = int(input())
    
    # 집합 S를 구성하는 n개의 정수를 리스트로 입력
    S = list(map(int, input().split()))
    
    # 부분집합을 저장할 리스트를 초기화하고, 전체 부분집합의 평균을 저장할 변수 tot를 초기화
    subset = [[]]
    tot = 0
    
    # 집합 S의 각 원소에 대해 부분집합을 생성하고 그 평균을 계산
    for s in S:
        size = len(subset)
        for i in range(size):
            num = subset[i] + [s]
            subset.append(num)
            tot += avg(num)
    
    # 전체 부분집합의 평균을 계산하고 소수점 아래 20자리까지 반올림하여 결과를 저장
    res = round(tot / (len(subset) - 1), 20)
    
    # 결과 출력
    print(f'#{t} {res}')

 

참고자료

 

파이썬에서 부분집합 구하기

백준이나 프로그래머스에서 문제를 풀다보면 부분집합을 구했을때 굉장히 쉽게 풀 수 있는 문제들이 있습니다. 매번 itertools라는 라이브러리를 사용해서 해결했었는데 그마저도 기억이 안나서

velog.io

반응형
Comments