For Programmer

SWEA 1208 파이썬 문제풀이(Flatten) 본문

코팅테스트/백준 문제 모음

SWEA 1208 파이썬 문제풀이(Flatten)

유지광이 2022. 2. 5. 23:32
728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV139KOaABgCFAYh 

 

SW Expert Academy

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

swexpertacademy.com

 


이문제도 단순한 구현 문제이다. 문제에서 요구한 대로 그대로 구현하면 된다.

for order in range(1, 10 + 1):
    dump_count = int(input())
    array = list(map(int, input().split()))

    for i in range(dump_count):
        max_ = max(array)  # 최댓값을 저장
        min_ = min(array)  # 최솟값을 저장
        array[array.index(max_)] = max_ - 1  # 최댓값의 인덱스에 최댓값 -1 을 저장해준다.
        array[array.index(min_)] = min_ + 1  # 최솟값의 인덱스에 최솟값 -1 을 저장해준다.

        new_max_ = max(array)  # 새로 계산된 최댓값을 찾는다.
        new_min_ = min(array)  # 새로 계산된 최솟값을 찾는다.

        if new_max_ - new_min_ < 2:  # 만약 그 값이 0 혹은 1 이라면
            break  # 반복문을 탈출한다.

    print(f'#{order} {new_max_ - new_min_}') #최댓값 - 최솟값을 출력
728x90
Comments