728x90
https://school.programmers.co.kr/learn/courses/30/lessons/172928
소스코드
using System;
public class Solution
{
int maxX = 0;
int maxY = 0;
public int[] solution(string[] park, string[] routes)
{
maxX = park[0].Length;
maxY = park.Length;
int[] answer = new int[2];
int x = 0;
int y = 0;
for (int i = 0; i < park.Length; i++)
{
int index = park[i].IndexOf("S");
if (index != -1)
{
x = index;
y = i;
break;
}
}
foreach (string route in routes)
{
string[] routeInfo = route.Split(" ");
string dir = routeInfo[0];
int movePos = int.Parse(routeInfo[1]);
int nextY = y;
int nextX = x;
bool isCheck = true;
for (int i = 0; i < movePos; i++)
{
switch (dir)
{
case "N":
nextY--;
break;
case "S":
nextY++;
break;
case "W":
nextX--;
break;
case "E":
nextX++;
break;
}
if (IsOderCheck(park, nextY, nextX) == false)
{
isCheck = false;
break;
}
}
if (isCheck)
{
x = nextX;
y = nextY;
}
}
return new int[2] { y, x };
}
bool IsOderCheck(string[] park, int y, int x)
{
if (y < 0 || y >= maxY)
return false;
if (x < 0 || x >= maxX)
return false;
if (park[y][x] == 'X')
return false;
return true;
}
}
728x90
'코딩공부 > 프로그래머스' 카테고리의 다른 글
※[프로그래머스]Lv.1 대충 만든 자판 C# (0) | 2023.06.12 |
---|---|
※[프로그래머스]Lv.1 덧칠하기 C# (0) | 2023.06.12 |
※[프로그래머스]Lv.1 크기가 작은 부분문자열 C#(long.parse) (0) | 2023.06.08 |
※[프로그래머스]Lv.1 달리기 경주 C#(dictionary) (0) | 2023.06.08 |
※[프로그래머스]Lv.0 조건에 맞게 수열 변환하기 2 C# (SequenceEqual) (1) | 2023.06.08 |