코딩테스트

[프로그래머스] 이웃한 칸

코딩너구리 2024. 8. 22. 15:00
문제 설명
각 칸마다 색이 칠해진 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]는 영어 소문자로만 이루어져 있습니다.

 

상하좌우에서 조건을 걸면 바로 풀 수 있는 문제이다 이게 왜 정답률이 낮은지 잘 모르겠다.

 

#include <string>
#include <vector>

using namespace std;

int solution(vector<vector<string>> board, int h, int w) {
    int answer = 0;
    
    int size = board.size();
    
    string targetString = board[h][w];
    
    if(h-1>=0)
    {
        if(targetString==board[h-1][w])
        {
            answer++;
        }
    }
    
    if(h+1<size)
    {
        if(targetString==board[h+1][w])
        {
            answer++;
        }
    }
    
    if(w-1>=0)
    {
        if(targetString==board[h][w-1])
        {
            answer++;
        }
    }
    
    if(w+1<size)
    {
        if(targetString==board[h][w+1])
        {
            answer++;
        }
    }
    
    return answer;
}

 

https://school.programmers.co.kr/learn/courses/30/lessons/250125

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr