코딩공부/프로그래머스

※[프로그래머스]Lv.2 귤 고르기C# (Dictionary.TryAdd 중복 카운터)

usingsystem 2023. 7. 7. 15:47
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/138476

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

소스코드1

using System;
using System.Collections.Generic;
using System.Linq;
public class Solution
{
    public int solution(int k, int[] tangerine)
    {
        int answer = 0;

        var distinct = tangerine.GroupBy(g => g).Select(s => s.Count());

        var orderBy = distinct.OrderByDescending(x => x).ToList();

        int resualt = k;
        while (resualt > 0)
        {
            resualt -= orderBy[answer];
            answer++;
        }

        return answer;
    }
}

소스코드 2 (Dictionary TryAdd)

using System;
using System.Collections.Generic;
using System.Linq;
public class Solution
{
    public int solution(int k, int[] tangerine)
    {
        int answer = 0;

        Dictionary<int, int> dic = new Dictionary<int, int>();

        for (int i = 0; i < tangerine.Length; i++)
        {
            if (dic.TryAdd(tangerine[i], 1) == false)
            {
                dic[tangerine[i]] += 1;
            }
        }

        List<int> list = dic.Values.ToList().OrderByDescending(o => o).ToList();

        int resualt = k;
        while (resualt > 0)
        {
            resualt -= list[answer];
            answer++;
        }

        return answer;
    }
}
728x90