1. Day34

  • 알고리즘 코드카타
  • C++과 Unreal Engine으로 3D 게임 개발 강의 수강(2-2)
  • CS50x 1주차 마무리

2. CH3 - C++과 Unreal Engine으로 3D 게임 개발(Day34)

  • C++ 과 Unreal Engine으로 3D 게임 개발 강의 수강(2-1)
    • Character 클래스를 활용한 캐릭터 구현

3. 알고리즘 코드카타

  • 가운데 글자 가져오기(초기 코드)
    • 홀수 인지 짝수인지 체크 → 짝수라면 중앙의 두 글자 push_back 홀수라면 가운데 글자만 answer 에 push_back
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
    string answer = "";
    int l = s.size();
    if (l % 2 == 0)
    {
        answer.push_back(s[l / 2 - 1]);
        answer.push_back(s[l / 2]);
    }
    else
    {
        answer.push_back(s[l / 2]);
    }
    return answer;
}
  • 가운데 글자 가져오기 (개선 코드)
    • substr()을 활용 짝수라면 중앙의 문자열 2개 반환 홀수라면 중앙의 글자 하나 반환
#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    int l = s.size();
    // (l - 1) / 2 -> 시작 위치
    // 2 - (l % 2) -> 홀수 짝수에 따라서 반환할 길이
    return s.substr((l - 1) / 2, 2 - (l % 2));
}

4. 내일 계획 : CH3 강의 학습, 알고리즘 문제 집중 CS50x 2주차 시작

1. Day33

  • 알고리즘 코드카타
  • C++과 Unreal Engine으로 3D 게임 개발 강의 수강(2-1)

2. CH3 - C++과 Unreal Engine으로 3D 게임 개발(Day33)

  • C++ 과 Unreal Engine으로 3D 게임 개발 강의 수강(2-1)
    • Character 클래스를 활용한 캐릭터 구현

3. 알고리즘 코드카타

  • 없는 숫자 더하기, 제일 작은 수 제거하기
  • 제일 작은 수 제거하기(초기 코드)
    • for 문에서 최소값의 이터레이터값을 받은다음 erase로 제거하고 answer = arr 반환
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) {
    vector<int> answer;
    auto minIt = arr.begin();
    // for 문을 이터레이터 값으로 진행
    for (auto it = arr.begin(); it < arr.end(); ++it)
    {
           // 배열의 최소값의 이터레이터 갱신
       if (*it < *minIt)
       {
           minIt = it;
       }
    }
    // 최소값 제거
    arr.erase(minIt);
    // answer 배열에 대입
    answer = arr;
    if (answer.empty())
    {
        return vector<int>(1, -1);
    }

    return answer;
}
  • 제일 작은 수 제거하기(개선 코드)
    • min_element(v.begin(), v.end()) : 배열의 가장 작은 값을 찾아 이터레이터 반환 → 결과값에서 배열의 시작 주소를 빼야 인덱스
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) {
    vector<int> answer;
    // arr의 원소가 1개 이하면 빈 배열을 반환
    // -1 을 반환
    if (arr.size() <= 1)
    {
        return vector<int>(1, -1);
    }
    // arr의 배열의 최소값 이터레이터를 찾은다음 제거
    arr.erase(min_element(arr.begin(), arr.end()));
    answer = arr;
    return answer;
}

4. 내일 계획 : CH3 강의 학습, 알고리즘 문제 집중 CS50x 1주차 마무리, 오후 조퇴

1. Day32

  • 알고리즘 코드카타
  • C++과 Unreal Engine으로 3D 게임 개발 강의 수강(1-5, 1-6)
  • CS50x(0주차, 1주차)

2. CH3 - C++과 Unreal Engine으로 3D 게임 개발(Day32)

  • C++ 과 Unreal Engine으로 3D 게임 개발 강의 수강(1-5, 1-6)
    • 언리얼 엔진 Actor의 라이프 사이클 이해하기
    • Tick 함수로 Actor의 Transform 조정
    • C++ 클래스와 리플렉션 시스템 활용

3. 알고리즘 코드카타

  • 나누어 떨어지는 숫자, 음양 더하기
  • 핸드폰 번호 가리기(초기코드)
    • for 문안에서 조건에 따라 *로 가리고 나머지는 입력 된 string값 대입
#include <string>
#include <vector>

using namespace std;

string solution(string phone_number) {
    string answer = "";
    int length = phone_number.size();
    for (int i = 0; i < length; ++i)
    {
        if (i < length - 4)
        {
            answer.push_back('*');
        }
        else
        {
            answer.push_back(phone_number[i]);
        }
    }
    return answer;
}
  • 핸드폰 번호 가리기(개선 코드)
    • for 문안에서 입력된 string값을 뒤 4자리를 제외하고 *로 가린 뒤 answer 에 대입
#include <string>
#include <vector>

using namespace std;

string solution(string phone_number) {
    string answer = "";
    int length = phone_number.size();
    for (int i = 0; i < length; ++i)
    {
            // 직관적으로 뒤의 4자리 빼고는 *로 가리기
        if (i < length - 4)
        {
            phone_number[i] = '*';
        }
        // 이 아래의 else문이 삭제 
    }

    // answer 에 가려진 전화번호 바로 대입
    answer = phone_number;
    return answer;
}

4. CS50x(1주차)

  • C 언어 기초 Condtitionals 까지 진행
  • printf, 변수, 자료형, 조건문, 반복문, 함수 등 기본 문법 학습

5. 내일 계획 : CH3 강의 학습, 알고리즘 문제 집중 CS50x 1주차 마무리, 오후 조퇴

+ Recent posts