알고리즘/2020 Goricon 문제풀이

[2020 Goricon] BOJ 20112 사토르 마방진

4Legs 2020. 12. 5. 19:45

문제 링크 : www.acmicpc.net/problem/20112

 

20112번: 사토르 마방진

사토르 마방진에 대해 들어본 적이 있는가? 사토르 마방진은 간단히 말하면 "가로로 읽었을 때와 세로로 읽었을 때 똑같이 읽히는 단어 집합"이다. 예시로는 다음과 같은 것들이 있다. 라팔아 팔

www.acmicpc.net

저번달에 진행됐던 고리콘 문제들을 하나씩 풀이해볼 예정이다.

대회 당일에 토익시험이 겹쳐 대회에 참여하지는 못했지만, 기출문제들을 풀어보고자 카테고리를 개설했다.

 

맨 처음 문제답게 상당히 간단한 문제이다.

마방진의 크기도 최대 100으로 작기 때문에, 단순한 비교로도 충분히 문제를 해결할 수 있다.

마방진의 i행 j열 문자가 j행 i열 문자와 같은지만 확인해주면 된다.

[코드]

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
27
28
29
30
31
32
33
34
35
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
 
using namespace std;
typedef pair<intint> p;
 
int n;
vector<string> arr;
 
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(NULL);
 
    string input;
    cin >> n;
 
    for (int i = 0; i < n; i++) {
        cin >> input;
        arr.push_back(input);
    }
 
    for (int i = 0; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
            if (arr[i][j] != arr[j][i]) {
                printf("NO\n");
                return 0;
            }
        }
    }
    printf("YES\n");
 
    return 0;
}
cs