■ 학습 개요
○ 오늘 계획
- 유니티 숙련 다시 듣기 1~10강
- 유니티 꾸준실습 풀기
- 알고리즘 풀기
○ 학습 회고
■ 매일 알고리즘 풀이 3일차
○ 삼각형의 완성조건 (1)
- 문제 링크
- 내풀이
max_element(시작, 끝)
: 배열 시작과 끝 사이 있는 항목중 가장 큰 숫자 반환
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> sides)
{
int answer = 0;
int max = *max_element(sides.begin(), sides.end()); // vecter은 포인터가 아니다
int sum = 0;
int count = 0;
for (int i = 0; i < sides.size(); i++)
{
if (sides[i] != max)
{
sum += sides[i];
count++;
}
}
if (count == 0) // 입력 값이 다 같은 경우
sum += (max * 2);
else if (count == 1) // 하나만 같을 경우
sum += max;
if (sum > max)
answer = 1;
else
answer = 2;
return answer;
}
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> sides) {
sort(sides.begin(),sides.end());
return (sides[2] < sides[0]+sides[1])?1:2;
}
○ x만큼 간격이 있는 n개의 숫자
#include <string>
#include <vector>
using namespace std;
vector<long long> solution(int x, int n)
{
vector<long long> answer;
for (int i = 0; i < n; i++)
{
answer.push_back(x + x*i);
}
return answer;
}
○ 카펫