빙글빙글 스네일 (백준 15722)

코딩생활·2023년 10월 19일
0

백준문제풀이

목록 보기
7/308

안녕하세요. 오늘은 빙글빙글 돌릴거예요.

문제

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--;
		}
	}
}


감사합니다.

0개의 댓글