※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 25755번 문제인 거울반사이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/25755 

 

25755번: 거울반사

첫 번째 줄에는 임스가 뒤집고자 하는 방향 $W$와, 배열의 크기 $N$이 주어진다. $W$는 L, R, U, D 중 하나이다. $(2 \le N \le 20)$ 입력의 두 번째 줄부터 $N$개의 줄에 0이 아닌 숫자가 구성된 배열이 공백

www.acmicpc.net

주어진 배열을 좌우로 뒤집는 것은 각 행의 구성 원소들의 순서가 뒤집히는 것이고, 상하로 뒤집는 것은 각 열의 구성 원소들의 순서가 뒤집히는 것이다.

 

주어진 배열을 저장하고 읽는 순서를 조건에 맞춰 각 숫자들을 알맞게 출력해주자.

 

문제 조건에 써져있는 내용만 구현하자. 특히, 3을 상하로 뒤집어도 다시 3이 되는 것이 아닌 '?'를 출력해야 함에 유의하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

char dir;
int N;
int arr[20][20];
char mirrored[10] = { '0','1','5','?','?','2','?','?','8','?' };

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

	cin >> dir >> N;
	for (int r = 0; r < N; r++) {
		for (int c = 0; c < N; c++) {
			cin >> arr[r][c];
		}
	}

	if (dir == 'U' || dir == 'D') {
		for (int r = N - 1; r > -1; r--) {
			for (int c = 0; c < N; c++) {
				cout << mirrored[arr[r][c]] << ' ';
			}
			cout << '\n';
		}
	}
	else {
		for (int r = 0; r < N; r++) {
			for (int c = N - 1; c > -1; c--) {
				cout << mirrored[arr[r][c]] << ' ';
			}
			cout << '\n';
		}
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 25980 // C++] Abbreviated Aliases  (0) 2022.11.24
[BOJ 25953 // C++] 템포럴 그래프  (0) 2022.11.23
[BOJ 15474 // C++] 鉛筆 (Pencils)  (0) 2022.11.23
[BOJ 13221 // C++] Manhattan  (0) 2022.11.23
[BOJ 21573 // C++] Кондиционер  (0) 2022.11.22

+ Recent posts