출처: 프로그래머스 코딩 테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/172928
나의 풀이
public int[] solution(string[] park, string[] routes)
{
int y = 0;
int x = 0;
// 시작지점 찾기
foreach(string p in park)
{
int index = p.IndexOf('S');
if(index != -1)
{
x = index;
break;
}
++y;
}
// 길찾기
foreach(string route in routes)
{
string[] splited = route.Split();
string dir = splited[0];
int repeat = Convert.ToInt32(splited[1]);
bool isSuccess = true;
int moveToY = y;
int moveToX = x;
for(int i = 0; i < repeat; ++i)
{
if(dir == "N") --moveToY;
else if(dir == "S") ++moveToY;
else if(dir == "W") --moveToX;
else ++moveToX; // "E"
if(!IsValidPoint(park, moveToY, moveToX))
{
isSuccess = false;
break;
}
}
if(isSuccess)
{
y = moveToY;
x = moveToX;
}
}
return new int[2] { y, x };
}
private bool IsValidPoint(string[] park, int y, int x)
{
int height = park.Length;
int width = park[0].Length;
if(y < 0 || y >= height) return false;
if(x < 0 || x >= width) return false;
if(park[y][x] == 'X') return false;
return true;
}
딱히 특별한 풀이 없이 반복문과 예외처리만을 검증하는 문제.
'🛡️ 코딩테스트 > 🛡️ 코테 : 프로그래머스' 카테고리의 다른 글
C# 무인도 여행 - DFS BFS 길찾기 / 프로그래머스 [Lv.2] (0) | 2023.03.27 |
---|---|
C# 점 찍기 - 완전탐색 / 프로그래머스 [Lv.2] (0) | 2023.03.26 |
C# 멀쩡한 사각형 - 완전탐색DFS / 프로그래머스 [Lv.2] (0) | 2023.03.24 |
C# 거리두기 확인하기 - 완전탐색DFS / 프로그래머스 [Lv.2] (0) | 2023.03.23 |
C# 전력망을 둘로 나누기 - 완전탐색DFS / 프로그래머스 [Lv.2] (0) | 2023.03.22 |