■ 학습 개요
○ 오늘 계획
- 유니티 입문 팀프로젝트 -> 발표
- 첼린지 꾸준 실습(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;
}
○ 신고 결과 받기(상)