본문 바로가기
온라인저지

[BOJ] 3041번: N-퍼즐

by plzfday 2018. 7. 27.

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

 

'온라인저지' 카테고리의 다른 글

[BOJ] 3042번: 트리플렛  (0) 2018.07.27
[BOJ] 11758번: CCW  (0) 2018.07.27
[BOJ] 15595번: 정답 비율 계산하기  (0) 2018.07.27
[BOJ] 3040번: 백설 공주와 일곱 난쟁이  (0) 2018.07.27
[BOJ] 1764번: 듣보잡  (0) 2018.07.26
[BOJ] 10539번: 수빈이와 수열  (0) 2018.07.26

댓글