본문 바로가기

Develop/Python + SWEA96

[SW Expert Academy] 5205. 퀵 정렬 5205. 퀵 정렬 문제) 퀵 정렬을 구현해 N개의 정수를 정렬해 리스트 A에 넣고, A[N//2]에 저장된 값을 출력하는 프로그램을 만드시오. [입력] 첫 줄에 테스트케이스의 수 T가 주어진다. 1 2022. 3. 31.
[SW Expert Academy] 5204. 병합 정렬 5204. 병합 정렬 문제) 알고리즘 교수님은 학생들에게 병합 정렬을 이용해 오름차순으로 정렬하는 과제를 내려고 한다. 정렬 된 결과만으로는 실제로 병합 정렬을 적용했는지 알 수 없기 때문에 다음과 같은 제약을 주었다. N개의 정렬 대상을 가진 리스트 L을 분할할 때 L[0:N//2], L[N//2:N]으로 분할 한다. 병합 과정에서 다음처럼 왼쪽 마지막 원소가 오른쪽 마지막 원소보다 큰 경우의 수를 출력한다. 정렬이 끝난 리스트 L에서 L[N//2] 원소를 출력한다. 알고리즘 교수님의 조건에 따라 병합 정렬을 수행하는 프로그램을 만드시오. [입력] 첫 줄에 테스트케이스의 수 T가 주어진다. 1 0: result.append(right.popleft()) return result # 병합정렬을 위해서 리.. 2022. 3. 30.
[SW Expert Academy] 5203. 베이비진 게임 5203. 베이비진 게임 문제) 0부터 9까지인 숫자 카드 4세트를 섞은 후 6개의 카드를 골랐을 때, 연속인 숫자가 3개 이상이면 run, 같은 숫자가 3개 이상이면 triplet이라고 한다. 게임을 시작하면 플레이어1과 플레이어 2가 교대로 한 장 씩 카드를 가져가며, 6장을 채우기 전이라도 먼저 run이나 triplet이 되는 사람이 승자가 된다. 두 사람이 가져가게 되는 순서대로 12장의 카드에 대한 정보가 주어졌을 때 승자를 알아내는 프로그램을 작성하시오. 만약 무승부인 경우 0을 출력한다. 예를 들어 9 9 5 6 5 6 1 1 4 2 2 1인 경우, 플레이어 1은 9, 5, 5, 1, 4, 2카드를, 플레이어2는 9, 6, 6, 1, 2, 1을 가져가게 된다. 이때는 카드를 모두 가져갈 때 .. 2022. 3. 29.
[SW Expert Academy] 5202. 화물 도크 5202. 화물 도크 문제) 24시간 운영되는 물류센터에는 화물을 싣고 내리는 도크가 설치되어 있다. 0시부터 다음날 0시 이전까지 A도크의 사용신청을 확인해 최대한 많은 화물차가 화물을 싣고 내릴 수 있도록 하면, 최대 몇 대의 화물차가 이용할 수 있는지 알아내 출력하는 프로그램을 만드시오. 신청서에는 작업 시작 시간과 완료 시간이 매시 정각을 기준으로 표시되어 있고, 앞 작업의 종료와 동시에 다음 작업을 시작할 수 있다. 예를 들어 앞 작업의 종료 시간이 5시면 다음 작업의 시작 시간은 5시부터 가능하다. [입력] 첫 줄에 테스트케이스의 수 T가 주어진다. 1 2022. 3. 29.