개발 일지
229. Majority Element II (다수 원소 II) 본문
크기 n의 정수 배열이 주어지면 ⌊ n/3 ⌋ 번 이상 나타나는 모든 원소를 구합니다.
예시 1:
입력: nums = [3,2,3]
출력: [3]
예시 2:
입력: nums = [1]
출력: [1]
예시 3:
입력: nums = [1,2]
출력: [1,2]
조건:
- 1 <= nums.length <= 5 * 1^4
- -10^9 <= nums[i] <= 10^9
정답:
public class Solution {
public IList<int> MajorityElement(int[] nums) {
List<int> result = new List<int>();
int countCheck = nums.Length / 3 + 1;
var numsDistinct = nums.Distinct().ToArray();
for (int i = 0; i < numsDistinct.Count(); i++)
{
if (nums.Count(n => n == numsDistinct[i]) >= countCheck)
{
result.Add(numsDistinct[i]);
}
}
return result;
}
}
해설: ⌊ n/3 ⌋번 이상 있는 정수 배열을 return하는 문제입니다.
먼저 n/3을 우선적으로 countCheck에 넣어둡니다.
그 다음 중복되지 않는 리스트만 체크하기 위하여 Distinct를 이용하여 중복을 제거한 후 nums.Count에서 numsDistinct에서 하나하나 갯수를 확인 후 만약 countCheck 이상이라면 result에 add하고 계산이 완료되면 result를 return합니다.
'코딩 테스트 > LeetCode' 카테고리의 다른 글
2231. Largest Number After Digit Swaps by Parity (홀수짝수별 자릿수 스왑 후 가장 큰 수) (0) | 2024.11.04 |
---|---|
1557. Minimum Number of Vertices to Reach All Nodes ( 모든 노드에 도달하기 위한 최소 정점 수) (0) | 2024.11.04 |
682. Baseball Game (야구 게임) (3) | 2024.10.31 |
709. To Lower Case (소문자로) (0) | 2024.10.31 |
705. Design HashSet (HashSet 디자인) (0) | 2024.10.31 |