728x90
반응형
문제
코드
#include <cmath>
#include <set>
#include <vector>
using namespace std;
int solution(int a, int b, int c) {
int answer = 1;
vector<int> intArr;
intArr.emplace_back(a);
intArr.emplace_back(b);
intArr.emplace_back(c);
int count = 0;
for (int i = 0; i < intArr.size(); ++i)
{
for (const int num : intArr)
{
if (intArr[i] != num)
{
count++;
}
}
}
const int result = count / 3;
if (result == 0)
{
for (int i = 1; i < 4; ++i)
{
answer *= pow(a, i) + (pow(b, i) + (pow(c, i)));
}
}
else if (result == 1)
{
for (int i = 1; i < 3; ++i)
{
answer *= pow(a, i) + (pow(b, i) + (pow(c, i)));
}
}
else
{
answer += (a + b + c);
answer -= 1;
}
return answer;
}
// 다른 사람 풀이
/*
int solution(int a, int b, int c)
{
set<int> s{ a, b, c };
if (s.size() == 3)
return a + b + c;
if (s.size() == 2)
return (a + b + c) * (pow(a, 2) + pow(b, 2) + pow(c, 2));
if (s.size() == 1)
return (a + b + c) * (pow(a, 2) + pow(b, 2) + pow(c, 2)) * (pow(a, 3) + pow(b, 3) + pow(c, 3));
}
*/
set 을 이용했으면 좋았을 것 같아서 아쉬웠음.
728x90
반응형
'코딩테스트 > 프로그래머스(C++)_Level.0' 카테고리의 다른 글
[프로그래머스/C++] Lv.0 이어 붙인 수 (0) | 2023.10.18 |
---|---|
[프로그래머스/C++] Lv.0 모든 원소들의 곱과 합 (0) | 2023.10.17 |
[프로그래머스/C++] Lv.0 등차수열의 특정한 항만 더하기 (0) | 2023.10.16 |
[프로그래머스/C++] Lv.0 코드 처리하기 (0) | 2023.10.15 |
[프로그래머스/C++] Lv.flag 에 따라 다른 값 반환하기 (0) | 2023.10.14 |