2784 : 가로 세로 퍼즐

풀이

n 제한이 굉장히 작으므로 naive하게 그냥 다 돌려보면 된다!

코드

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

string pzl[3], wrd[6];

void wookje() {
	bool chk[6] = { 0 };
	int cnt = 0;

	for (int k = 0; k < 3; k++) {
		for (int i = 0; i < 6; i++) {
			if (!chk[i] && pzl[k] == wrd[i]) {
				chk[i] = 1, cnt++;
				break;
			}
		}
		for (int i = 0; i < 6; i++) {
			if (!chk[i] && pzl[0][k] == wrd[i][0] && pzl[1][k] == wrd[i][1] && pzl[2][k] == wrd[i][2]) {
				chk[i] = 1, cnt++;
				break;
			}
		}
	}
	if (cnt == 6) {
		for (int i = 0; i < 3; i++) cout << pzl[i] << "\n";
		exit(0);
	}
}

int main() {
	cin.tie(0);
	ios::sync_with_stdio(0);

	for (int i = 0; i < 6; i++) cin >> wrd[i];

	for (int i = 0; i < 6; i++) {
		for (int j = 0; j < 6; j++) {
			for (int k = 0; k < 6; k++) {
				if (i == j || j == k || k == i) continue;
				pzl[0] = wrd[i], pzl[1] = wrd[j], pzl[2] = wrd[k];
				wookje();
			}
		}
	}

	cout << "0";

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge

wookje.kwon's profile image

wookje.kwon

2017-09-03 00:34

Read more posts by this author