※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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 |