728x90
코드 힌트
- 좌표 제한 계산
- board 배열을 사용하여 이동 범위를 계산합니다. board[0]과 board[1]는 보드의 크기를 나타내며, 이를 바탕으로 보드의 중앙에서 이동할 수 있는 최대 범위를 계산합니다. 이 계산은 좌표의 제한을 결정하는 데 필요합니다.
- 키 입력 처리
- keyinput 배열을 순회하며 각 키 입력에 따라 좌표를 업데이트합니다. 각 방향(왼쪽, 오른쪽, 위, 아래)에 대한 조건을 체크하고, 이동 가능한 범위 내에서 좌표를 조정합니다.
- 좌표 업데이트
- 각 방향으로 이동 시 현재 좌표가 설정된 범위 내에 있는지 확인합니다. 범위를 벗어나지 않도록 조건문을 사용하여 좌표를 조정합니다.
정답은 더보기 클릭
더보기
class Solution {
public int[] solution(String[] keyinput, int[] board) {
// 결과를 저장할 배열을 초기화합니다.
// 결과 배열은 [x좌표, y좌표]를 저장합니다.
int[] result = new int[2];
// 보드의 가로, 세로 크기를 기준으로 좌표의 제한 범위를 계산합니다.
// 보드는 중앙이 (0, 0)으로 설정되어 있으며, 각 방향으로 이동할 수 있는 최대 거리를 계산합니다.
int n = (board[0] - 1) / 2; // 가로 방향 이동 범위
int m = (board[1] - 1) / 2; // 세로 방향 이동 범위
// 주어진 키 입력에 따라 이동을 처리합니다.
for (String key : keyinput) {
if (key.equals("left") && result[0] - 1 >= -n) {
// 왼쪽으로 이동, x좌표를 감소시키고, 제한 범위를 체크합니다.
result[0]--;
} else if (key.equals("right") && result[0] + 1 <= n) {
// 오른쪽으로 이동, x좌표를 증가시키고, 제한 범위를 체크합니다.
result[0]++;
} else if (key.equals("down") && result[1] - 1 >= -m) {
// 아래로 이동, y좌표를 감소시키고, 제한 범위를 체크합니다.
result[1]--;
} else if (key.equals("up") && result[1] + 1 <= m) {
// 위로 이동, y좌표를 증가시키고, 제한 범위를 체크합니다.
result[1]++;
}
}
// 결과 배열을 반환합니다.
return result;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 삼각형의 완성조건 (2) (0) | 2024.08.16 |
---|---|
[프로그래머스] 구슬을 나누는 경우의 수 (0) | 2024.08.16 |
[프로그래머스] 영어가 싫어요 (0) | 2024.08.15 |
[프로그래머스] 잘라서 배열로 저장하기 (0) | 2024.08.15 |
[프로그래머스] 소인수분해 (0) | 2024.08.15 |