온라인저지
[BOJ] 3041번: N-퍼즐
plzfday
2018. 7. 27. 01:03
https://www.acmicpc.net/problem/3041
원래 위치인 각각의 원래 위치는 ((square[i][j] - 'A') / 4, (square[i][j] - 'A') % 4)인데 맨해튼 거리로 흩어짐 정도를 구해야 하므로 찾아진 x, y의 값을 빼주는 것이다.
#include <cstdio>
inline int abs(int a) { return a < 0 ? -a : a; }
char square[4][4];
int main()
{
for (int i = 0; i < 4; ++i)
scanf("%s", square[i]);
int ret = 0;
for (int i = 0; i < 4; ++i)
for (int j = 0; j < 4; ++j)
if (square[i][j] != '.')
ret += (abs((square[i][j] - 'A') / 4 - i) + abs((square[i][j] - 'A') % 4 - j));
printf("%d\n", ret);
return 0;
}