코딩테스트
C++ 에는 제공이 안 되는 Split 메서드 만들어서 풀기
[level 2] JadenCase 문자열 만들기 - 12951
https://school.programmers.co.kr/learn/courses/30/lessons/12951?language=cpp
[level 2] JadenCase 문자열 만들기 - 12951 풀이코드
더보기
#include <string>
#include <vector>
using namespace std;
vector<string> split(const string& input, string delimiter)
{
vector<string> result;
auto start = 0;
auto end = input.find(delimiter);
while(end != string::npos)
{
result.push_back(input.substr(start, end - start));
start = end + delimiter.size();
end = input.find(delimiter, start);
}
result.push_back(input.substr(start));
return result;
}
string solution(string s) {
string answer = "";
vector<string> splitS = split(s, " ");
for (int i = 0; i < splitS.size(); i++)
{
for (int j = 0; j < splitS[i].length(); j++)
{
if (j == 0) answer += toupper(splitS[i][j]);
else answer += tolower(splitS[i][j]);
}
if (i != splitS.size() - 1) answer += " ";
}
return answer;
}
[level 2] 이진 변환 반복하기 - 70129
https://school.programmers.co.kr/learn/courses/30/lessons/70129
[level 2] 이진 변환 반복하기 - 70129 풀이코드
더보기
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int a, b;
// 2진법으로 변환시켜주는 메서드
string ChangeBinary(int input)
{
string result = "";
while (input != 1)
{
result += to_string(input % 2);
input /= 2;
}
result += "1";
reverse(result.begin(), result.end());
return result;
}
// 2진변환
void Change(string str)
{
if (str == "1") return;
string result = "";
for (char i : str)
{
if (i == '1') result += i;
else b++; // b -> 제거되는 0의 수
}
a++; // a -> 2진변환 수
// 1로 변환후 길이가 길면 한번 더 변환 작업
if (result.length() > 0)
{
Change(ChangeBinary(result.length()));
}
}
vector<int> solution(string s) {
vector<int> answer;
Change(s);
answer.push_back(a);
answer.push_back(b);
return answer;
}
딱 나머지 연산 법칙과 동적 계획법(DP)에 대한 이해가 있어야 풀 수 있는 문제. 다음에 다시 풀어봐야겠다.
[level 2] 피보나치 수 - 12945
https://school.programmers.co.kr/learn/courses/30/lessons/12945
[level 2] 피보나치 수 - 12945 풀이코드
더보기
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int answer = 0;
int m = 1234567;
int fibo(int input, vector<int> & v)
{
// 기저조건
// 입력된 값이 2보다 작으면 0 -> 0, 1 -> 1
if (input < 2) return v[input] = input;
// 기존에 미리 계산한 값이 있으면 바로 제출
if (v[input] > 0) return v[input];
// 숫자가 커질 수 있으니 나머지 연산을 우선 적용해서 오버플로우 방지
v[input] = ((fibo(input - 1, v) % m) + (fibo(input - 2, v) % m)) % m;
return v[input];
}
int solution(int n)
{
// 동적 백터 생성 후 전달
vector<int> v(n + 1);
answer = fibo(n, v);
return answer;
}
Spring&Winter 진행사항
캐릭터 에셋 적용 후 간단한 이동로직과 틸트 시프트 기능을 적용했습니다.
기본 Idle 애니메이션을 랜덤 애니메이션으로 적용했습니다.
Random Sequence Player에서 Entries 안에 index를 추가하면 설정됩니다.