728x90

977. Squares of a Sorted Array

리트코드977

 

주어진 문제

Given an integer array nums sorted in non-decreasing order, return an array of the squares of each number sorted in non-decreasing order.

주어진 오름차순의 nums 배열의 각 숫자를 제곱한 값을 오름차순으로 리턴하시오.

 

Example 1:

Input: nums = [-4,-1,0,3,10]
Output: [0,1,9,16,100]
Explanation: After squaring, the array becomes [16,1,0,9,100].
After sorting, it becomes [0,1,9,16,100].

Example 2:

Input: nums = [-7,-3,2,3,11]
Output: [4,9,9,49,121]

 

나름 두 가지 방법을 생각했습니다. 첫 번 째 방법은 30%대 두 번 째 방법은 95% 대의 런타임 성적을 보여주었습니다.

 

 

통과 답안

1번 답안

class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        s_nums = []
        
        for i in range(len(nums)):
            s_nums.append(nums[i]**2)
        s_nums.sort()
        return s_nums

리스트를 추가하여 만든 방법으로 278 ms, 느렸습니다.

 

2번 답안

class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        for c, i in enumerate(nums):
            nums[c] = i ** 2
        nums.sort()
        return nums

enumerate 이라는 함수를 써 짧게 써냈습니다. 170ms 이 나왔습니다.

sort() 함수를 쓰지 않고 swap 을 한 세 번째 방법을 작성 중에 있습니다!

728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기