プログラマ-アクセス長(Lv 2)
2955 ワード
私はこの問題のコードを間違えた.
#include
#include
using namespace std;
int solution(string dirs) {
int answer = 0;
int x = 5;
int y = 5;
int idir[10][10] = { 0, };
idir[5][5] = 1;
for (int i = 0; i < dirs.size(); i++)
{
if (dirs[i] == 'L')
{
x--;
if (x < 0 || x>10 || y < 0 || y>10)
{
x++;
continue;
}
if (2 > idir[x][y])
{
idir[x][y] += 1;
answer++;
cout << "L" << endl;
}
}
else if (dirs[i] == 'R')
{
x++;
if (x < 0 || x>10 || y < 0 || y>10)
{
x--;
continue;
}
if (2 > idir[x][y])
{
idir[x][y] += 1;
answer++;
cout << "R" << endl;
}
}
else if (dirs[i] == 'D')
{
y--;
if (x < 0 || x>10 || y < 0 || y>10)
{
y++;
continue;
}
if (2 > idir[x][y])
{
idir[x][y] += 1;
answer++;
cout << "D" << endl;
}
}
else if (dirs[i] == 'U')
{
y++;
if (x < 0 || x>10 || y < 0 || y>10)
{
y--;
continue;
}
if (2 > idir[x][y])
{
idir[x][y] += 1;
answer++;
cout << "U" << endl;
}
}
}
return answer;
}
間違った原因は、行った場所を再訪問したときにこのように処理できないことです.以前よりずっとよくなって、本当に励まされました...
#include <string>
using namespace std;
int solution(string dirs)
{
int x = 5; int y = 5; //시작 위치는 배열 기준 (5,5)로 지정
int count = 0;
int check[11][11][11][11]; //길 방문 여부(전 x좌표, 전 y좌표, 후 x좌표, 후 y좌표)
for (int i = 0; i < dirs.length(); i++) {
if (dirs[i] == 'U') {
if (y < 10) {
if (check[x][y][x][y + 1] != 1) {
check[x][y][x][y + 1] = 1; //방문한 것으로 체크
check[x][y + 1][x][y] = 1;
count++;
}
y++;
}
}
else if (dirs[i] == 'D') {
if (y > 0) {
if (check[x][y][x][y - 1] != 1) {
check[x][y][x][y - 1] = 1;
check[x][y - 1][x][y] = 1;
count++;
}
y--;
}
}
else if (dirs[i] == 'L') {
if (x > 0) {
if (check[x][y][x - 1][y] != 1) {
check[x][y][x - 1][y] = 1;
check[x - 1][y][x][y] = 1;
count++;
}
x--;
}
}
else if (dirs[i] == 'R') {
if (x < 10) {
if (check[x][y][x + 1][y] != 1) {
check[x][y][x + 1][y] = 1;
check[x + 1][y][x][y] = 1;
count++;
}
x++;
}
}
}
return count;
}
int check[11][11][11][11];//道路にアクセスするかどうか(前x座標、前y座標、後x座標、後y座標)この4次元配列も可能であることに気づいた.
このとき、ゲームキャラクターが通る道の中で、キャラクターが初めて歩く道の長さを得ようとする.
注意点は双方向性の長さです.
(1,1)->(1,2)路と(1,2)->(1,1)路は同じ道と考えるべきである.
Reference
この問題について(プログラマ-アクセス長(Lv 2)), 我々は、より多くの情報をここで見つけました https://velog.io/@imalive77/프로그래머스-방문길이Lv2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol