#include<iostream>
#include<string>
#include<algorithm> // reverse에 필요
using namespace std;
typedef long long ll;
ll a, n;
bool IsPalin(string& s)
{
// 모르고 있었음
return equal(s.begin(), s.begin() + s.size() / 2, s.rbegin());
}
bool Check(ll& num)
{
ll temp = num;
string abase;
while (0 < temp)
{
abase += to_string(temp % a); // 떠올리지 못함
temp /= a;
}
return IsPalin(abase);
}
int main()
{
cin >> a >> n;
ll res=0;
for (ll i = 1; ; i++)
{
string left = to_string(i);
string right = left;
reverse(right.begin(), right.end()); // 모르고 있었음
ll num1 = stoll(left + right);
left.pop_back(); // left 대신 right 사용해버렸음
ll num2 = stoll(left + right);
if (n < num1 && n < num2) break; // 떠올리지 못함
if (Check(num1) && num1 <= n) res += num1;
if (Check(num2) && num2 <= n) res += num2;
}
cout << res;
}
답지 베낌.
reverse(right.begin(), right.end());로 문자열 뒤집기 가능equal(s.begin(), s.begin() + s.size() / 2, s.rbegin());로 숫자 문자열 회문인지 판별 가능public readonly SyncVar<Color> 변수 선언. readonly지만 get set 가능.OnChange에 색깔 바꾸는 메서드 구독.멀티 플레이에서 카메라 설정은 복잡해보이지만, 실은 로컬 플레이어 하나 당 카메라 한 개만 있으면 된다.
1. 로컬 카메라 생성
- 메인 카메라를 프리팹화한다
- 플레이어 프리팹에 카메라 위치용 빈 게임 오브젝트 생성
- OnStartClient에서 isOwner라면 Instatiate하는 스크립트 추가
- OnStartClient : 이 오브젝트가 생성될 때 클라에서 한 번 실행됨
2. 씬 카메라 이용
- 메인 카메라에 MainCamera 태그 확인
- 플레이어 프리팹에 카메라 위치용 빈 게임 오브젝트 생성
- OnOwnershipClient에서 IsOwner라면 Camera.main을 설정하는 스크립트 추가
- OnOwnershipClient : ownership 얻거나 잃을 때 호출됨
3. 시네머신 기본 설정법
- 메인 카메라에 시네머신 브레인 추가
- 플레이어 프리팹에 카메라 위치용 빈 게임 오브젝트 생성하고 Cinemachine Camera 컴포넌트 추가
- OnStartClient에서 cinemachineCamera.enabled = IsOwner;하는 스크립트 추가