최소 숫자 게임

제로콜라좋아요·2024년 5월 24일
0

algorithem

목록 보기
5/37

문제 설명

짝수 길이 의 0 인덱스 정수 배열이 제공되며 빈 배열도 있습니다 . 앨리스와 밥은 매 라운드마다 앨리스와 밥이 한 번씩만 움직이는 게임을 하기로 결정했습니다. 게임의 규칙은 다음과 같습니다.numsarr

매 라운드마다 먼저 Alice가 에서 최소 요소를 제거하고 numsBob도 동일한 작업을 수행합니다.
이제 먼저 Bob이 제거된 요소를 배열에 추가 arr하고 Alice도 동일한 작업을 수행합니다.
게임은 nums비어 있을 때까지 계속됩니다.
결과 배열을 반환합니다 arr.

예시

예시 1:

입력: nums = [5,4,2,3]
출력: [3,2,5,4]
설명: 1라운드에서 먼저 Alice가 2를 제거하고 Bob이 3을 제거합니다. 그런 다음 arr에서 Bob이 먼저 3을 추가하고 그 다음 Alice가 추가합니다. 2를 추가합니다. 따라서 arr = [3,2]입니다.
두 번째 라운드 시작 시 nums = [5,4]입니다. 이제 먼저 Alice가 4를 제거하고 Bob이 5를 제거합니다. 그런 다음 둘 다 arr에 추가되어 [3,2,5,4]가 됩니다.
예 2:

입력: nums = [2,5]
출력: [5,2]
설명: 1라운드에서 먼저 Alice가 2를 제거한 다음 Bob이 5를 제거합니다. 그런 다음 arr에서 먼저 Bob이 추가하고 그 다음 Alice가 추가합니다. 따라서 arr = [5,2]입니다.

class Solution:
    def numberGame(self, nums):
        nums.sort()  # 주어진 배열을 오름차순으로 정렬합니다.
        result = []  # 결과 배열을 초기화합니다.

        # 앨리스와 밥이 번갈아가며 요소를 제거하고 결과 배열에 추가합니다.
        while nums:
            result.append(nums.pop(0))  # 앨리스가 제거한 요소를 결과 배열에 추가합니다.
            if nums:  # 배열이 비어 있지 않은 경우에만 밥이 제거한 요소를 추가합니다.
                result.append(nums.pop())

        return result

<내 코드의 흐름>
1. 주어진 배열을 오름차순으로 정렬합니다.
2. 결과 배열을 초기화합니다.
3. 앨리스와 밥이 번갈아가며 요소를 제거하고 결과 배열에 추가합니다.
4. 앨리스가 제거한 요소를 결과 배열에 추가합니다.
5. 배열이 비어 있지 않은 경우에만 밥이 제거한 요소를 추가합니다.

근데 결과적으로,,, 실패한 풀이다.
왜 실패인지는 나중에 수정해서 다시 올릴거다... ㅠㅠ

profile
개발자계의 제로콜라

0개의 댓글