규칙 파악하는게 힘든 문제였다.
구현도...
별찍기 문제처럼 모든 경우 나눠가면서 풀어야 편하다. 아니면 뇌가.. 꼬여버려요..
보면 판이 홀수 * 홀수 / 홀 * 짝 / 짝 * 홀 / 짝 * 짝 이렇게 4가지 경우가 있다. 하나라도 홀수라면 모든 배열을 다 지나갈 수 있는데 짝 * 짝인 경우가 문제였다.
이것도 어떻게 경우 나눠가며 풀었다..
처음 짤 때 엄청 더럽게 짰는데 정리하고 짜니 완전 깔끔히 짰다. 뿌듯
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <bitset>
#include <stdio.h>
#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()
using namespace std;
using i64 = long long int;
using ii = pair<int, int>;
using ii64 = pair<i64, i64>;
int mapv[1005][1005];
int main() {
int r, c;
scanf("%d %d", &r, &c);
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
scanf("%d", &mapv[i][j]);
}
}
if (r % 2 == 1) {
for (int i = 0; i < r; i++) {
for (int j = 0; j < c - 1; j++) {
if (i % 2 == 0)
printf("R");
else
printf("L");
}
if (i != r - 1)
printf("D");
}
return 0;
}
if (c % 2 == 1) {
for (int i = 0; i < c; i++) {
for (int j = 0; j < r - 1; j++) {
if (i % 2 == 0)
printf("D");
else
printf("U");
}
if (i != c - 1)
printf("R");
}
return 0;
}
int minv = 9999;
int rx, cx;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (i == 0 && j == 0)
continue;
if (i == r - 1 && j == c - 1)
continue;
if (i % 2 == 0 && j % 2 == 0)
continue;
if (i % 2 == 1 && j % 2 == 1)
continue;
if (minv < mapv[i][j])
continue;
rx = i;
cx = j;
minv = mapv[i][j];
}
}
// printf("%d %d\n", rx, cx);
if (rx % 2 == 1)
rx--;
for (int i = 0; i < rx; i++) {
for (int j = 0; j < c - 1; j++) {
if (i % 2 == 0)
printf("R");
else
printf("L");
}
printf("D");
}
bool isCx = false;
for (int i = 0; i < c; i++) {
if (i == cx) {
isCx = true;
continue;
}
if (!isCx) {
if (i % 2 == 0)
printf("DR");
else
printf("UR");
continue;
}
if (i % 2 == 0)
printf("RU");
else
printf("RD");
}
for (int i = rx + 2; i < r; i++) {
printf("D");
for (int j = 0; j < c - 1; j++) {
if (i % 2 == 0)
printf("L");
else
printf("R");
}
}
}
'백준' 카테고리의 다른 글
16210 DSHS Bank (0) | 2021.07.24 |
---|---|
18436 수열과 쿼리 37 (0) | 2021.07.24 |
16923 다음 다양한 단어 (0) | 2021.07.18 |
20149 선분 교차 3 (0) | 2021.07.18 |
2090 조화평균 (0) | 2021.07.17 |