10157 : 자리배정

풀이

달팽이 짜듯이 하면 된다

코드

#include <stdio.h>

const int dx[] = { 1,0,-1,0 };
const int dy[] = { 0,1,0,-1 };

int n, m, c, a[1002][1002];

int main() {
	scanf("%d %d %d", &n, &m, &c);

	for (int i = 0; i <= 1001; i++) a[i][0] = a[0][i] = a[m + 1][i] = a[i][n + 1] = 1;

	int x = 0, y = 1, d = 0;
	for (int i = 1; i <= n*m; i++) {
		x += dx[d], y += dy[d];
		a[x][y] = 1;
		if (a[x + dx[d]][y + dy[d]]) d = (d + 1) % 4;
		if (i == c) {
			printf("%d %d", y, x);
			return 0;
		}
	}

	printf("0");

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-09-17 00:07

Read more posts by this author