728x90
https://school.programmers.co.kr/learn/courses/30/lessons/172928
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ์ง์๋๋ก ์ฐฉ์คํ ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค.
๋ก๋ด ๊ฐ์์ง๋ ๋ชฉํ ์นธ์ผ๋ก ์ ํํ๋ ๊ฒ์ด ์๋๊ณ ์นธ์ ํ๋ํ๋ ๋ฐ์ผ๋ฉด์ ์ด๋ํ๋ค.
๋ฐ๋ผ์, ๋งค ๋ช ๋ น๋ง๋ค์ ์ด๋ ๊ฒฝ๋ก์ค์ 'X'๊ฐ ํ๋๋ผ๋ ์์ผ๋ฉด ์ด๋ํ ์ ์๋ค๋ ์ ๋ง ์ ์ฒดํฌํ๋ฉด ๋๋ค.
JAVA
class Solution {
public int[] solution(String[] park, String[] routes) {
int[] answer = new int[2];
// ์์์ ์ฐพ๊ธฐ
int x=0, y=0;
for(int i=0; i<park.length; i++){
for(int j=0; j<park[0].length(); j++){
if (park[i].charAt(j)=='S'){
x = i;
y = j;
break;
}
}
}
int nx=0, ny=0;
int dx=0, dy=0;
for (String route : routes){
String[] arr = route.split(" ");
int dist = Integer.parseInt(arr[1]);
switch(arr[0]){
case "N":
dx = -1;
dy = 0;
break;
case "S":
dx = 1;
dy = 0;
break;
case "W":
dx = 0;
dy = -1;
break;
case "E":
dx = 0;
dy = 1;
}
// ์ด๋ ๊ฐ๋ฅ ์ฌ๋ถ ํ๋จ
boolean movable = true;
int curX = x, curY = y;
for(int i=0; i<dist; i++){
nx = curX + dx;
ny = curY + dy;
if(nx < 0 || nx >= park.length || ny < 0 || ny >= park[0].length() || park[nx].charAt(ny) == 'X'){
movable = false;
break;
}else{
curX = nx;
curY = ny;
}
}
// ์ด๋
if (movable){
x = curX;
y = curY;
}
}
answer[0] = x; answer[1] = y;
return answer;
}
}
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]2564๋ฒ: ๊ฒฝ๋น์ (0) | 2023.10.27 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์๋ฅผ ๋์ ํ์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2023.10.10 |
[๋ฐฑ์ค]21921๋ฒ: ๋ธ๋ก๊ทธ (0) | 2023.08.11 |
[๋ฐฑ์ค]2304๋ฒ: ์ฐฝ๊ณ ๋ค๊ฐํ (0) | 2023.08.11 |
[๋ฐฑ์ค]14719๋ฒ: ๋น๋ฌผ (0) | 2023.08.01 |