이것이 취업을 위한 코딩 테스트다. with 파이썬 - 나동빈
public class UpDownLeftRight {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] plans = br.readLine().split(" ");
int x = 1; //row
int y = 1; //column
int[] posX = new int[]{-1, 1, 0, 0}; //U D L R
int[] posY = new int[]{0, 0, -1, 1}; //U D L R
String[] direction = new String[]{"U", "D", "L", "R"};
for(String i : plans) {
int tempX = -1, tempY = -1;
for(int j = 0; j < direction.length; j++) {
if(i.equals(direction[j])) {
tempX = x + posX[j];
tempY = y += posY[j];
break;
}
}
if(tempX < 1 || tempY < 1 || tempX > N || tempY > N) {
continue;
}
x = tempX;
y = tempY;
}
System.out.println(x + " " + y);
}
}
int[] posX = new int[]{-1, 1, 0, 0}; //U D L R
int[] posY = new int[]{0, 0, -1, 1}; //U D L R
String[] direction = new String[]{"U", "D", "L", "R"};
for(String i : plans) {
int tempX = -1, tempY = -1;
for(int j = 0; j < direction.length; j++) {
if(i.equals(direction[j])) {
tempX = x + posX[j];
tempY = y += posY[j];
break;
}
}
if(tempX < 1 || tempY < 1 || tempX > N || tempY > N) {
continue;
}
x = tempX;
y = tempY;
}
처음에 tempX, tempY 변수를 두지 않고, 그냥 x, y 에 직접 더해주어 0이나 N 을 넘을 경우 if 문을 다 따로 해줘야 했는데, 임의의 변수를 두고 기존의 값에 대입해주는 형식으로 하니 수월해졌다.