상세 컨텐츠

본문 제목

575. Distribute Candies

Developer/LEETCODE

by cepiloth 2021. 9. 8. 18:48

본문

728x90
반응형

https://leetcode.com/problems/distribute-candies/

 

Distribute Candies - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

난이도 : easy

문제

앨리스가 먹을 수 있는 캔디의 종류의 최대값을 구하여라.

 

해당 문제는 이중 반복문으로 O(N^2) 의 시간으로도 풀수 있다. 여러 접근 방법이 있는데 필자는 unordered_map 을 사용하여 중복되는 요소를 제거하고 어레이의 크기 / 2 두 가지 수를 구하여 더 작은 값을 반환하였다. 

 

코드

class Solution {
public:
    int distributeCandies(vector<int>& candyType) {
        unordered_map<int, int> m;
        for(auto a:candyType) {
            m[a]++;
        }
        
        int size = candyType.size() / 2;
        
        return (int)min(size, (int)m.size());
    }
};

 

벨류를 갖고 있을 필요가 없음으로 set 을 사용해 보았다.

    int distributeCandies(vector<int>& candyType) {
        unordered_set<int> st;
        for(auto a:candyType) {
            st.insert(a);
        }
        
        return min((int)st.size(), (int)candyType.size() / 2);
    }

 

메모리는 큰 차이가 없고 Runtime 이 조금더 빨라졌다. ㅇㅇ; 정렬을하고 이전 수와 다음수가 다르면 체크해서 count 하고 마지막에 candType.size() / 2 와 비교해도 해당 문제는 풀 수 있어 보인다. 귀찮아서 패스 pass -o-

728x90
반응형

'Developer > LEETCODE' 카테고리의 다른 글

594. Longest Harmonious Subsequence  (0) 2021.09.08
682. Baseball Game  (0) 2021.09.08
409. Longest Palindrome  (0) 2021.09.05
819. Most Common Word  (0) 2021.09.05
1996. The Number of Weak Characters in the Game  (0) 2021.09.05

관련글 더보기

댓글 영역