https://school.programmers.co.kr/learn/courses/30/lessons/172928
가로 길이 W ( sx ) |
|||
세로 길이 H ( sy ) | ( 0 , 0 ) | ( 0 , 1 ) | ( 0 , 2 ) |
( 1 , 0 ) | |||
( 2 , 0 ) | ( H-1, W-1 ) |
좌표 표현 : (sy, sx)
class Solution {
public int[] solution(String[] park, String[] routes) {
int sx = 0; // 이동 후 x좌표
int sy = 0; // 이동 후 y좌표
char[][] arr = new char[park.length][park[0].length()];
for(int i=0;i<park.length;i++){
arr[i]=park[i].toCharArray(); // String -> char 쪼개서 넣음. arr[0]안에 arr[0][i]위치에 넣음.
if(park[i].contains("S")){
sy = i;
sx=park[i].indexOf("S");
}
}
for(String r : routes){
String dir = r.split(" ")[0];
int len = Integer.valueOf(r.split(" ")[1]);
int nx = sx;
int ny = sy;
for(int i=0;i<len;i++){
if(dir.equals("E")){ //동
nx++;
}
if(dir.equals("W")){ //서
nx--;
}
if(dir.equals("S")){ //남
ny++;
}
if(dir.equals("N")){ //북
ny--;
}
if(nx>=0 && ny>=0 && nx<arr[0].length && ny<arr.length){
if(arr[ny][nx] == 'X'){
break;
}
if(i==len-1){
sx = nx;
sy = ny;
}
}
}
}
int[] answer = {sy, sx};
return answer;
}
}
'코딩테스트 > 문제풀이 팁' 카테고리의 다른 글
[Kakao] HashMap의 value가HashSet일때 - 신고결과받기 (0) | 2024.03.19 |
---|---|
[그리디] Kakao - 두 큐 합 같게 만들기 (0) | 2024.03.18 |
[유클리드 호제법] 숫자 카드 나누기 (0) | 2024.03.17 |
int형 2차원 배열 복합정렬조건 (0) | 2024.03.16 |
[Kakao] 가장 많이 받은 선물 (0) | 2024.03.15 |