Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 더현대서울 맛집
- gs25
- programmers
- 편스토랑
- 맥북
- 프로그래머스 파이썬
- SW Expert Academy
- AI 경진대회
- 파이썬
- ChatGPT
- ubuntu
- Git
- 데이콘
- 자연어처리
- PYTHON
- 프로그래머스
- 편스토랑 우승상품
- 캐치카페
- 금융문자분석경진대회
- Kaggle
- leetcode
- 우분투
- hackerrank
- github
- Docker
- dacon
- 백준
- Real or Not? NLP with Disaster Tweets
- 코로나19
- Baekjoon
Archives
- Today
- Total
솜씨좋은장씨
[leetCode] 1636. Sort Array by Increasing Frequency (Python) 본문
Programming/코딩 1일 1문제
[leetCode] 1636. Sort Array by Increasing Frequency (Python)
솜씨좋은장씨 2021. 1. 23. 15:26728x90
반응형
Given an array of integers nums, sort the array in increasing order based on the frequency of the values. If multiple values have the same frequency, sort them in decreasing order.
Return the sorted array.
Example 1:
Input: nums = [1,1,2,2,2,3]
Output: [3,1,1,2,2,2]
Explanation: '3' has a frequency of 1, '1' has a frequency of 2, and '2' has a frequency of 3.
Example 2:
Input: nums = [2,3,1,3,2]
Output: [1,3,3,2,2]
Explanation: '2' and '3' both have a frequency of 2, so they are sorted in decreasing order.
Example 3:
Input: nums = [-1,1,-6,4,5,-6,1,4,1]
Output: [5,-1,4,4,-6,-6,1,1,1]
Constraints:
- 1 <= nums.length <= 100
- -100 <= nums[i] <= 100
Solution
from collections import Counter
class Solution:
def frequencySort(self, nums: List[int]) -> List[int]:
cnt = Counter(nums).items()
sorted_list = sorted(cnt, key=lambda x: (x[1], -x[0]))
answer_list = []
for val in sorted_list:
answer_list = answer_list + [val[0]] * val[1]
return answer_list
Solution 풀이
이 문제는 list안에 존재하는 숫자들의 빈도수, 숫자의 크기(내림차순)를 기준으로 정렬하는 문제입니다.
먼저 collections의 Counter를 활용하여 빈도수를 구하고 구한 다음 sorted를 활용하여 기준대로 정렬합니다.
마지막으로 각 숫자를 다시 빈도수 만큼 다시 list에 넣어 정답을 만들어주면 됩니다.
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[leetCode] 367. Valid Perfect Square (Python) (0) | 2021.01.25 |
---|---|
[leetCode] 804. Unique Morse Code Words (Python) (0) | 2021.01.24 |
[leetCode] 648. Replace Words (Python) (0) | 2021.01.22 |
[leetCode] 80. Remove Duplicates from Sorted Array II (Python) (0) | 2021.01.21 |
[leetCode] 1451. Rearrange Words in a Sentence (Python) (0) | 2021.01.20 |
Comments