안녕하세요. 오늘은 빙글빙글 돌릴거예요.
https://www.acmicpc.net/problem/15722
N의 범위가 작기 때문에
위 오른쪽 아래 왼쪽 순서대로 1칸, 1칸, 2칸, 2칸, 3칸, 3칸... 이런식으로 나가면 됩니다.
#include <iostream>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
int x = 0, y = 0, cnt = 0, i, dis = 0, N;
cin >> N;
while (true)
{
dis++;
for (i = 0; i < dis; i++)
{
if (cnt == N)
{
cout << x << ' ' << y;
return 0;
}
cnt++;
y++;
}
for (i = 0; i < dis; i++)
{
if (cnt == N)
{
cout << x << ' ' << y;
return 0;
}
cnt++;
x++;
}
dis++;
for (i = 0; i < dis; i++)
{
if (cnt == N)
{
cout << x << ' ' << y;
return 0;
}
cnt++;
y--;
}
for (i = 0; i < dis; i++)
{
if (cnt == N)
{
cout << x << ' ' << y;
return 0;
}
cnt++;
x--;
}
}
}
감사합니다.