[SWEA] - 1208. Flatten

jjiani·2021년 2월 10일
0

SWEA

목록 보기
4/20
  1. 02 - 09 : First
# 풀었는데 답이 틀렸어요,, 근데 왜 틀렸는지 모르겠어요.
import sys
sys.stdin = open('input.txt', 'r')

for test_case in range(1, 11):
    # n이 주어진 최대횟수
    n = int(input())
    # 상자 높이갚 배열
    arr = list(map(int, input().split()))

    num = 0
    # 초기값설정
    count = 0
    while count < n:
        # 최대높이 박스, 최소높이 박스 셋팅
        min_box = arr[0]
        min_index = 0
        max_box = arr[0]
        max_index = 0
        for i in range(len(arr)):
            if arr[i] >= max_box:
                max_box = arr[i]
                max_index = i
            if arr[i] <= min_box:
                min_box = arr[i]
                min_index = i
        # 덤프작업
        min_box += 1
        max_box -= 1
        count += 1
        # 배열 셋팅

        # 평탄화 작업 끝
        if min_box == max_box:
            num = 0
            break

        arr[min_index] = min_box
        arr[max_index] = max_box
        num = max_box - min_box
    print('#{} {}'.format(test_case, num))
  1. 내장함수 사용 X
# 버블정렬 함수 만들기
def Bubble_Sort(arr):
    for i in range(len(arr) - 1, 0, -1):
        for j in range(i):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

for tc in range(1, 11):
    # 돌 수 있는 횟수
    dump = int(input())
    box = list(map(int, input().split()))

    for i in range(dump):
        # 한바퀴 돌때마다 정렬하기
        Bubble_Sort(box)
        # 가장 작은값에 +1하고
        box[0] += 1
        # 가장 큰 값에 -1하기
        box[len(box) - 1] -= 1
    #최종적으로 정렬하기
    Bubble_Sort(box)

    print('#{} {}'.format(tc, box[len(box) - 1] - box[0]))
  1. 내장함수 사용 O
for tc in range(1, 11):
    N = int(input())
    box = list(map(int, input().split()))

    box.sort()
    for i in range(N):
        box.sort()
        box[0] += 1
        box[len(box)-1] -= 1

    box.sort()
    print('#{} {}'.format(tc, box[len(box)-1]-box[0]))
profile
¡Bienvenido a mi velog!🐣

0개의 댓글