프로그래머스 250125번 문제인 "이웃한 칸" [PCCE 기출문제] 9번 - 파이썬, 자바
[프로그래머스] 이웃한 칸 [PCCE 기출문제] 9번 - [파이썬/python] [자바/java]
💻 문제 설명
각 칸마다 색이 칠해진 2차원 격자 보드판이 있습니다. 그중 한 칸을 골랐을 때, 위, 아래, 왼쪽, 오른쪽 칸 중 같은 색깔로 칠해진 칸의 개수를 구하려고 합니다.
보드의 각 칸에 칠해진 색깔 이름이 담긴 이차원 문자열 리스트 board
와 고른 칸의 위치를 나타내는 두 정수 h
, w
가 주어질 때 board[h][w]
와 이웃한 칸들 중 같은 색으로 칠해져 있는 칸의 개수를 return 하도록 solution 함수를 완성해 주세요.
🚨 제한사항
- 1 ≤
board
의 길이 ≤ 7board
의 길이와board[n]
의 길이는 동일합니다.
- 0 ≤
h
,w
<board
의 길이 - 1 ≤
board[h][w]
의 길이 ≤ 10board[h][w]
는 영어 소문자로만 이루어져 있습니다.
!!!정답 주의!!!
🌟 소스 코드
[Python] 파이썬 코드
[Java] 자바 코드
class Solution {
public int solution(String[][] board, int h, int w) {
int count = 0; // board[h][w]와 이웃한 칸(상, 하, 좌, 우)들 중 같은 색의 수
String color = board[h][w]; // board[h][w]의 색
// 상, 하, 좌, 우
int [][] directions = {{0, -1}, {0, 1}, {-1, 0}, {1, 0}};
// directions 순회 (상 -> 하 -> 좌 -> 우)
for (int [] dir : directions){
// 이동할 인덱스 생성
int mov_h = h + dir[0];
int mov_w = w + dir[1];
// 이동한 인덱스가 유효할 시
if ((mov_h >= 0) && (mov_h < board.length) && (mov_w >= 0) && (mov_w < board[0].length)){
// 이동한 칸의 색과 board[h][w]의 색이 같을 시 count += 1
if (color.equals(board[mov_h][mov_w])){
count += 1;
}
}
}
return count;
}
}
🏳🌈 테스트 결과
[Python] 파이썬 - 테스트 결과 | [Java] 자바 - 테스트 결과 |
![]() |
![]() |
![]() |
![]() |
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 점프와 순간 이동 - Lv.2 (22) | 2024.01.02 |
---|---|
[프로그래머스] 데이터 분석 - [PCCE 기출문제] 10번 (20) | 2023.12.12 |
[프로그래머스] 붕대 감기 - [PCCP 기출문제] 1번 (39) | 2023.12.10 |
[프로그래머스] N개의 최소공배수 - Lv.2 (44) | 2023.11.10 |
[프로그래머스] 전화번호 목록 - Lv.2 (46) | 2023.11.09 |