파이썬 알고리즘

    7. 창고정리

    창고정리 문제는 생략 문제풀이 import sys sys.stdin=open("input.txt", "r") n = int(input()) a = list(map(int, input().split())) #리스트에 여러 값을 대입하고 싶은 경우 m = int(input()) a.sort() #Hint 오름차순으로 정렬했으므로 첫번째 요소가 최솟값이고, 맨 마지막 요소가 최대값이다. for _ in range(m): a[n-1]=a[n-1]-1 #최댓값 1감소 a[0]=a[0]+1 #최소값 1증가 a.sort() #첫번째 요소가 최솟값이 되고, 맨 마지막 요소가 최대값이 되도록 연산이 끝날때마다 지속적으로 오름차순 정렬을 한다. answer=a[n-1] - a[0] print(answer) Hint 1. ..

    6. 씨름 선수(그리디)

    현수는 씨름 감독입니다. 현수는 씨름 선수를 선발공고를 냈고, N명의 지원자가 지원을 했습 니다. 현수는 각 지원자의 키와 몸무게 정보를 알고 있습니다. 현수는 씨름 선수 선발 원칙을 다음과 같이 정했습니다. “다른 모든 지원자와 일대일 비교하여 키와 몸무게 중 적어도 하나는 크거나, 무거운 지원자 만 뽑기로 했습니다.” 만약 A라는 지원자보다 키도 크고 몸무게도 무거운 지원자가 존재한다면 A지원자는 탈락입니 다. ▣ 입력설명 첫째 줄에 지원자의 수 N(5

    5. 회의실 배정

    한 개의 회의실이 있는데 이를 사용하고자 하는 n개의 회의들에 대하여 회의실 사용표를 만들 려고 한다. 각 회의에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하 면서 회의실을 사용할 수 있는 최대수의 회의를 찾아라. 단, 회의는 한번 시작하면 중간에 중 단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. ▣ 입력설명 첫째 줄에 회의의 수 n(1

    4. 마구간 정하기

    마구간 정하기(결정알고리즘) N개의 마구간이 수직선상에 있습니다. 각 마구간은 x1, x2, x3, ......, xN의 좌표를 가지며, 마 구간간에 좌표가 중복되는 일은 없습니다. 현수는 C마리의 말을 가지고 있는데, 이 말들은 서로 가까이 있는 것을 좋아하지 않습니다. 각 마구간에는 한 마리의 말만 넣을 수 있고, 가장 가까운 두 말의 거리가 최대가 되게 말을 마구간에 배치하고 싶습니다. C마리의 말을 N개의 마구간에 배치했을 때 가장 가까운 두 말의 거리가 최대가 되는 그 최대 값을 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫 줄에 자연수 N(3