728x90
코드 힌트
- 배열 접근 방법:
- 상하좌우 네 방향을 한 번에 처리하기 위해 dy, dx 배열을 사용합니다.
- int[] dx = {1,0,-1,0} int[] dy = {0,1,0,-1}; 로 설정하시면됩니다.
- for문을 이용해서 각 방향에 대해 좌표 이동을 계산하여 nx, ny 변수에 저장합니다.
- 색상 비교:
- 주어진 좌표 (h, w)에서 상하좌우에 있는 좌표들의 색상과 targetColor를 비교하여 같은 색상의 개수를 세는 방법입니다.
- 결과 반환:
- 최종적으로 result 변수에 저장된 값, 즉 주어진 좌표에서 상하좌우에 있는 같은 색상의 개수를 반환합니다.
더보기
class Solution {
public int solution(String[][] board, int h, int w) {
// board의 길이
int n = board.length;
// 같은 색의 갯수를 세기 위한 변수
int result = 0;
// 이동할 방향을 나타내는 배열 (상, 하, 좌, 우)
int[] dy = {0, 1, 0, -1};
int[] dx = {1, 0, -1, 0};
// 기준이 되는 색상
String targetColor = board[h][w];
// 상하좌우 네 방향에 대해 확인
for (int i = 0; i < 4; i++) {
// 다음 좌표 계산
int nx = dx[i] + w;
int ny = dy[i] + h;
// 유효한 범위 내에서 동일한 색상인지 확인
if (nx >= 0 && ny >= 0 && nx < n && ny < n
&& targetColor.equals(board[ny][nx])) {
result++; // 같은 색상의 개수 증가
}
}
return result;
}
}
728x90
'프로그래머스(Java) > Level 1' 카테고리의 다른 글
[프로그래머스] 신고 결과 받기 (0) | 2024.08.12 |
---|---|
[프로그래머스] 둘만의 암호 (0) | 2024.08.06 |
[프로그래머스] 크레인 인형뽑기 게임 (0) | 2024.08.05 |
[프로그래머스] 키패드 누르기 (0) | 2024.08.05 |
[프로그래머스] 달리기 경주 (0) | 2024.08.02 |