문제 링크: https://www.acmicpc.net/problem/3041
3041번: N-퍼즐
문제 N-퍼즐은 많은 다양한 형태와 이름이 있다. 이번 문제에서 우리가 살펴볼 것은 15-퍼즐이다. 15-퍼즐은 4*4보드에서 움직일 수 있는 정사각형으로 이루어져 있고, 한 정사각형은 빠져있다. 정사각형은 A부터 O까지 이름이 붙여져 있다. 이 퍼즐을 풀면 다음과 같은 그림이 된다. A B C D E F G H I J K L M N O . 우리는 이러한 15-퍼즐에서 흩어짐 정도를 계산할 수 있다. 흩어짐 정도는 각 정사각형의 현재 위치와 퍼즐을 풀었을
www.acmicpc.net
solved라는 배열에 완성된 퍼즐을 넣어놓고, 새로이 입력받은 puzzle이라는 배열과 비교하면 됨.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <bits/stdc++.h>
using namespace std;
char puzzle[4][4], solved[4][4];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
for(int i = 0; i < 4; i++) for(int j = 0; j < 4; j++)
solved[i][j] = 4 * i + j + 'A';
for(int i = 0; i < 4; i++) for(int j = 0; j < 4; j++)
cin >> puzzle[i][j];
int ans = 0;
for(int i = 0; i < 4; i++) for(int j = 0; j < 4; j++) {
for(int k = 0; k < 4; k++) for(int l = 0; l < 4; l++) {
if(puzzle[i][j] == solved[k][l])
ans += abs(i - k) + abs(j - l);
}
}
cout << ans << '\n';
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'COCI > 2번' 카테고리의 다른 글
백준 3029 경고 (COCI 2006/2007 Contest #5 2번) (0) | 2020.03.07 |
---|---|
백준 3035 스캐너 (COCI 2006/2007 Contest #4 2번) (0) | 2020.03.04 |
백준 3047 ABC (COCI 2006/2007 Contest #2 2번) (0) | 2020.03.02 |
백준 3053 택시 기하학 (COCI 2006/2007 Contest #1 2번) (0) | 2020.03.02 |