https://school.programmers.co.kr/learn/courses/30/lessons/138476
๋ฌธ์ ์ค๋ช
๊ฒฝํ๋ ๊ณผ์์์์ ๊ทค์ ์ํํ์ต๋๋ค. ๊ฒฝํ๋ ์ํํ ๊ทค ์ค 'k'๊ฐ๋ฅผ ๊ณจ๋ผ ์์ ํ๋์ ๋ด์ ํ๋งคํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ํํ ๊ทค์ ํฌ๊ธฐ๊ฐ ์ผ์ ํ์ง ์์ ๋ณด๊ธฐ์ ์ข์ง ์๋ค๊ณ ์๊ฐํ ๊ฒฝํ๋ ๊ทค์ ํฌ๊ธฐ๋ณ๋ก ๋ถ๋ฅํ์ ๋ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ์ ์๋ฅผ ์ต์ํํ๊ณ ์ถ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฒฝํ๊ฐ ์ํํ ๊ทค 8๊ฐ์ ํฌ๊ธฐ๊ฐ [1, 3, 2, 5, 4, 5, 2, 3] ์ด๋ผ๊ณ ํฉ์๋ค. ๊ฒฝํ๊ฐ ๊ทค 6๊ฐ๋ฅผ ํ๋งคํ๊ณ ์ถ๋ค๋ฉด, ํฌ๊ธฐ๊ฐ 1, 4์ธ ๊ทค์ ์ ์ธํ ์ฌ์ฏ ๊ฐ์ ๊ทค์ ์์์ ๋ด์ผ๋ฉด, ๊ทค์ ํฌ๊ธฐ์ ์ข ๋ฅ๊ฐ 2, 3, 5๋ก ์ด 3๊ฐ์ง๊ฐ ๋๋ฉฐ ์ด๋๊ฐ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ๊ฐ ์ต์์ผ ๋์ ๋๋ค.
๊ฒฝํ๊ฐ ํ ์์์ ๋ด์ผ๋ ค๋ ๊ทค์ ๊ฐ์ k์ ๊ทค์ ํฌ๊ธฐ๋ฅผ ๋ด์ ๋ฐฐ์ด tangerine์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๊ฒฝํ๊ฐ ๊ทค k๊ฐ๋ฅผ ๊ณ ๋ฅผ ๋ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ์ ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 1 ≤ k ≤ tangerine์ ๊ธธ์ด ≤ 100,000
- 1 ≤ tangerine์ ์์ ≤ 10,000,000
์ ์ถ๋ ฅ ์
k tangerine result
6 | [1, 3, 2, 5, 4, 5, 2, 3] | 3 |
4 | [1, 3, 2, 5, 4, 5, 2, 3] | 2 |
2 | [1, 1, 1, 1, 2, 2, 2, 3] | 1 |
๋ด ํด๋ต
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int k, vector<int> tangerine)
{
int answer = 0;
vector<int> vtan(10'000'000, 0);
for(int i = 0; i < tangerine.size(); ++i)
{
++vtan[tangerine[i]-1];
}
sort(vtan.begin(), vtan.end(), greater<int>());
while(true)
{
if(k <= 0)
break;
else
{
// ๋ ์ด์ ๊ทค์ด ์๋ค๋ฉด answer ๋ฆฌํด
if(vtan[answer] == 0)
return answer;
k -= vtan[answer];
++answer;
}
}
return answer;
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] level.3 - ์ผ๊ทผ ์ง์(C++) (0) | 2023.06.01 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] level.3 - ์ต๊ณ ์ ์งํฉ(C++) (0) | 2023.05.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.2 - ๋ฌด์ธ๋ ์ฌํ(C++) (0) | 2023.05.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.2 - ๋ ๋ฐ๋จน๊ธฐ(C++) (0) | 2023.05.22 |
[ํ๋ก๊ทธ๋๋จธ์ค] level.3 - ๊ฒฝ์ฃผ๋ก ๊ฑด์ค(C++) (1) | 2023.05.19 |