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
- 편스토랑
- programmers
- Git
- PYTHON
- 캐치카페
- Real or Not? NLP with Disaster Tweets
- ChatGPT
- leetcode
- 자연어처리
- 프로그래머스 파이썬
- hackerrank
- 백준
- 파이썬
- ubuntu
- 우분투
- 편스토랑 우승상품
- 맥북
- AI 경진대회
- 더현대서울 맛집
- Kaggle
- SW Expert Academy
- github
- Baekjoon
- dacon
- 데이콘
- gs25
- 코로나19
- Docker
- 금융문자분석경진대회
- 프로그래머스
Archives
- Today
- Total
솜씨좋은장씨
[leetCode] 1394. Find Lucky Integer in an Array (Python) 본문
Programming/코딩 1일 1문제
[leetCode] 1394. Find Lucky Integer in an Array (Python)
솜씨좋은장씨 2020. 11. 11. 01:31728x90
반응형
Given an array of integers arr, a lucky integer is an integer which has a frequency in the array equal to its value.
Return a lucky integer in the array. If there are multiple lucky integers return the largest of them. If there is no lucky integer return -1.
Example 1:
Input: arr = [2,2,3,4]
Output: 2
Explanation: The only lucky number in the array is 2 because frequency[2] == 2.
Example 2:
Input: arr = [1,2,2,3,3,3]
Output: 3
Explanation: 1, 2 and 3 are all lucky numbers, return the largest of them.
Example 3:
Input: arr = [2,2,2,3,3]
Output: -1
Explanation: There are no lucky numbers in the array.
Example 4:
Input: arr = [5]
Output: -1
Example 5:
Input: arr = [7,7,7,7,7,7,7]
Output: 7
Constraints:
- 1 <= arr.length <= 500
- 1 <= arr[i] <= 500
Solution
from collections import Counter
class Solution:
def findLucky(self, arr: List[int]) -> int:
answer = -1
cnt = Counter(arr).items()
answer_check = [ item[0] for item in cnt if item[0] == item[1] ]
if answer_check != []:
answer = max(answer_check)
return answer
Solution 해설
이 문제는 리스트 속에 존재하는 숫자와 그 숫자가 존재하는 빈도수가 서로 같은 숫자들 중에
가장 큰 숫자를 Luckey Number 라 하며 해당 숫자를 찾는 문제입니다.
먼저 collections의 Counter를 활용하여 빈도수를 구해준 다음 ( 숫자, 빈도수 ) 형태로 리스트에 저장될 수 있도록
.items() 를 활용하여 변환하여 줍니다.
그 다음 위에서 만든 리스트를 활용하여 빈도수와 숫자가 같은 숫자들만 answer_check에 남겨둡니다.
만약 answer_check 가 비어있는 리스트라면 Lucky Number 가 없는 것이므로 -1 을 return
answer_check가 비어있지 않다면 answer_check 리스트에서 가장 큰 값이 Lucky Number이므로
해당 값을 return 하도록 합니다.
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[leetCode] 747. Largest Number At Least Twice of Others (Python) (0) | 2020.11.13 |
---|---|
[leetCode] 859. Buddy Strings (Python) (0) | 2020.11.12 |
[leetCode] 81. Search in Rotated Sorted Array II (Python) (0) | 2020.11.10 |
[leetCode] 867. Transpose Matrix (Python) (0) | 2020.11.09 |
[leetCode] 43. Multiply Strings (Python) (0) | 2020.11.08 |
Comments