- Today
- Total
- OOP
- tree
- ์ธํด
- ๊ตฌํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฃ๊ตฌ์กฐ
- ์กธ์ ์ํ
- dp
- Graph
- ์์์ ๋ ฌ
- Algorithm
- ํ๋ก๊ทธ๋๋จธ์ค
- database
- java
- leetcode
- array
- ๋ฌธ๋ฒ
- pytorch
- ๋ค์ต์คํธ๋ผ
- ๋ฐฑ์๋
- MST
- ์๋ฐ
- PS
- spring
- CS
- ๋ฒจ๋งํฌ๋
- ์๋ฐ์์ ์
- ๋ฐฑ์ค
- ๊ทธ๋ฆฌ๋
- BFS
Partially Committed
[์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1] ๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ ๋ณธ๋ฌธ
[์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1] ๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ
WonderJay 2022. 7. 4. 18:50https://programmers.co.kr/learn/courses/30/lessons/68644
numbers ๋ฐฐ์ด์์ ์๋ก ๋ค๋ฅธ ์ธ๋ฑ์ค์ 2 ๊ฐ ์ซ์๋ฅผ ๋ํด์ ๋ง๋ค ์ ์๋ ๋ชจ๋ ์๋ฅผ answer ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ด์ return ํ๋๋ก ํด์ผํ๋ค.
ํ์ด1. ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ฐ๋ก ๋ ์ค๋ฅธ ๋ฐฉ๋ฒ์, numbers ๋ฐฐ์ด์์ 2 ๊ฐ๋ฅผ ์ ํ(combination)ํ๊ณ ๋ํ ๊ฐ์ ์ค๋ณต ์์ด answer ๋ฐฐ์ด์ ์ ์ฅํ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด์ ๋ฐฑํธ๋ํน์ ์ด์ฉํ์๋ค.
[C++]
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int sum = 0;
vector<int> arr(2, 0);
bool check(int x, vector<int>& answer)
{
for (auto& ele : answer)
{
if (ele == x)
{
return false;
}
}
return true;
}
void dfs(int depth, int start, vector<int>& numbers, vector<int>& answer)
{
if (depth == 2)
{
// sum ๊ณ์ฐ
sum = arr[0] + arr[1];
if (check(sum, answer) == true) //answer ๋ฐฐ์ด์ sum ์ด ์กด์ฌํ์ง ์์ผ๋ฉด
{
answer.push_back(sum); // answer ๋ฐฐ์ด์ ๋ฃ๊ณ
}
sum = 0; // sum ์ ๋ค์ 0์ผ๋ก ํ๊ณ return
return;
}
else
{
for (int i = start; i < numbers.size(); i++)
{
arr[depth] = numbers[i];
dfs(depth + 1, i + 1, numbers, answer);
}
}
}
vector<int> solution(vector<int> numbers) {
vector<int> answer;
dfs(0, 0, numbers, answer);
sort(answer.begin(), answer.end());
return answer;
}
ํ์ด2. ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๊ตฌ๊ฒฝํ๋ค๊ฐ, ๋ด๊ฐ ์กฐ๊ธ ๋ณต์กํ๊ฒ ์๊ฐํ ์ธก๋ฉด์ด ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. ๋ฐฑํธ๋ํน์ ์ฌ์ฉํ์ง ์์๋, ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์ปจํ ์ด๋์ธ set ์ ์ด์ฉํ๋ฉด ๋ณด๋ค ์ฝ๊ฒ ๊ตฌํํ ์ ์์๋ค. numbers ๋ฐฐ์ด์์ 2๊ฐ์ฉ ๋ฝ์์ ๋ํ ๊ฒ์ set ์ปจํ ์ด๋์ ๋ฃ์ด์ฃผ๋ฉด ์๋์ผ๋ก ์ค๋ณต์ด ์ ๊ฑฐ๋๊ณ , answer ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. set, map ์ ์๋์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ฏ๋ก ๋ณ๋์ ์ ๋ ฌ์ ํ์์๋ค.
[C++]
#include <string>
#include <vector>
#include <set>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer;
set<int> s;
for (int i = 0; i < numbers.size(); i++)
{
for (int j = i+1; j < numbers.size(); j++)
{
s.insert(numbers[i] + numbers[j]);
}
}
answer.assign(s.begin(), s.end());
return answer;
}
'๐ฅ Algorithm || ๋ฌธ์ ํ์ด > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ํด๋ฆฌ ์ฑ๋ฆฐ์ง] ์ต์์ง์ฌ๊ฐํ (0) | 2022.07.04 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] 2016๋ (0) | 2022.07.04 |
[Summer/Winter Coding(~2018)] ์์ฐ (0) | 2022.07.04 |
[์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1] 3์ง๋ฒ ๋ค์ง๊ธฐ (0) | 2022.07.04 |
[์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2] ์ฝ์์ ๊ฐ์์ ๋ง์ (0) | 2022.07.04 |