내일배움캠프 22일차 TIL : 유니티 숙련 시작

woollim·2024년 10월 23일
0

내일배움캠프TIL

목록 보기
21/36
post-thumbnail

■ 학습 개요

오늘 계획

  • 유니티 숙련 다시 듣기 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;
}

○ 카펫

0개의 댓글