문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
칸에 있는 문자열과 상하좌우로 이웃한 칸의 개수를 세는 문제이다.
1. 상하좌우 방향 배열을 생성한다.
2. h, w에 해당하는 문자열(target)을 기록한다.
3. 범위를 넘는지 파악하면서, target과 같은 문자열이 상하좌우로 인접한 칸에 있다면, 개수를 증가시킨다.
소스코드
class Solution {
public int solution(String[][] board, int h, int w) {
int[] dx = {1, -1, 0, 0};
int[] dy = {0, 0, 1, -1};
int answer = 0;
String target = board[h][w];
int len = board.length;
for (int i = 0; i < 4; i++) {
int mx = h + dx[i];
int my = w + dy[i];
if (mx < 0 || mx >= len || my < 0 || my >= len) continue;
if (target.equals(board[mx][my])) {
answer += 1;
}
}
return answer;
}
}'Problem Solving > Programmers' 카테고리의 다른 글
| [Programmers] 직사각형 넓이 구하기 - Java (0) | 2025.07.02 |
|---|---|
| [Programmers] PCCP 모의고사 1회 1번 - 외톨이 알파벳 - Java (0) | 2025.06.29 |
| [Programmers] 대충 만든 자판 - Java (0) | 2025.06.23 |
| [Programmers] 바탕화면 정리 - Java (0) | 2025.06.21 |
| [Programmers] 카드 뭉치 - Java (0) | 2025.06.20 |