문제
나의 생각
첫번째로는 board 내에 있는 값들을 / 2 반내림으로 처리하여 움직일 수 값을 재지정.
keyinput 값을 switch로 구분하여 move 값을 지정.
move가 board의 최대 범위를 벗어 날때는 board 최대 값으로 지정하는 수식으로 추가.
나의 답안
public static int[] solution(String[] keyinput, int[] board) {
int[] move = {0,0};
for (int i = 0; i < board.length; i++) {
board[i] = (int) Math.floor(board[i] / 2);
}
int length = 0;
while (length != keyinput.length) {
switch (keyinput[length]){
case "left" :
move[0]--;
break;
case "right" :
move[0]++;
break;
case "up" :
move[1]++;
break;
case "down" :
move[1]--;
break;
}
length++;
for (int i = 0; i < move.length; i++) {
boolean isMinus = false;
if (move[i] < 0){
isMinus = true;
move[i] *= -1;
}
move[i] = move[i] < board[i] ? move[i] : board[i];
if (isMinus){
move[i] *= -1;
}
}
System.out.println(Arrays.toString(move));
}
return move;
}
'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글
직사각형 넓이 구하기 (0) | 2023.03.08 |
---|---|
종이 자르기 (0) | 2023.03.07 |
외계어 사전 (0) | 2023.03.07 |
삼각형의 완성조건 (2) (0) | 2023.03.07 |
구슬을 나누는 경우의 수 (0) | 2023.03.06 |