문제
https://school.programmers.co.kr/learn/courses/30/lessons/120861
풀이
class Solution {
public int[] solution(String[] keyinput, int[] board) {
// 현재 위치를 (0, 0)으로 초기화
int x = 0;
int y = 0;
// 보드의 절반 크기 계산 (최대 이동 범위 설정)
int maxX = board[0] / 2;
int maxY = board[1] / 2;
// 입력된 방향키를 하나씩 처리
for (String key : keyinput) {
if (key.equals("left")) {
// 왼쪽으로 이동 (범위 내일 때만)
if (x > -maxX) {
x--;
}
} else if (key.equals("right")) {
// 오른쪽으로 이동 (범위 내일 때만)
if (x < maxX) {
x++;
}
} else if (key.equals("up")) {
// 위쪽으로 이동 (범위 내일 때만)
if (y < maxY) {
y++;
}
} else if (key.equals("down")) {
// 아래쪽으로 이동 (범위 내일 때만)
if (y > -maxY) {
y--;
}
}
}
// 최종 위치 반환
return new int[] {x, y};
}
}
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Lv.0 | 배열 원소의 길이 | Java (0) | 2025.10.06 |
---|---|
[Programmers] Lv.0 | 직사각형 넓이 구하기 | Java (0) | 2025.10.05 |
[Programmers] Lv.0 | 최댓값 만들기 (2) | Java (0) | 2025.10.03 |
[Programmers] Lv.0 | 다항식 더하기 | Java (0) | 2025.10.02 |
[Programmers] Lv.0 | 숨어있는 숫자의 덧셈 (2) | Java (0) | 2025.10.01 |
댓글