내일배움캠프 21일차 TIL : 유니티 입문 팀 프로젝트 6일차

woollim·2024년 10월 22일
1

내일배움캠프TIL

목록 보기
20/36
post-thumbnail

■ 학습 개요

오늘 계획

  • 유니티 입문 팀프로젝트 -> 발표
  • 첼린지 꾸준 실습(2주차 두번째)
  • 제네릭 특강 복습
  • 유니티 2D 강의 복습 9~16강
  • 매일 알고리즘 문제2일차 풀이(C++)

학습 회고

  • 프로젝트 발표가 무사히 끝났다. update를 활용하는 코드를 줄여야 한다는 피드백을 받았다.
  • 알고리즘 상 문제를 못 풀었다. 주말에 다시 풀어봐도 못풀면 풀이법을 찾아야겠다.


■ 매일 알고리즘 풀이 2일차

배열의 원소만큼 추가하기(하)

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> arr) 
{
    vector<int> answer;

    for (int i = 0; i < arr.size(); i++)
    {
        for (int j = 0; j < arr[i]; j++)
        {
            answer.push_back(arr[i]);
        }
    }

    return answer;
}

배열 만들기(중)

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int l, int r)
{
    vector<int> answer;

    for (int i = l; i <= r; i++)
    {
        bool check = true;
        int temp = i;

        while (temp >= 1)
        {
            if (!(temp % 10 == 5 || temp % 10 == 0))
            {
                check = false; // 5나 0이 아니면 false
                break; // 더 검사 할 거 없이 탈출
            }
            temp /= 10; // 10으로 나누어서 검사한 자릿수는 뺌
        }

        if(check)
            answer.push_back(i);
    }
    if (answer.size() == 0)
        answer.push_back(-1);
    return answer;
}
  • 다른 사람 풀이
#include <string>
#include <vector>

using namespace std;

vector<int> solution(int l, int r) {
    vector<int> answer;
    for(int i = l; i <= r; i++)
    {
        string num = to_string(i); // 스트링으로 변환
        bool zeroandfive = true;
        for(char n : num) // 한글자씩 확인
        {
            if(n != '0' && n != '5') {
                zeroandfive = false;
                break;
            }
        }
        if(zeroandfive) answer.push_back(i);
    }

    return (answer.empty())? vector<int>(1,-1) : answer;
}

신고 결과 받기(상)

0개의 댓글