Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

김찬양의 개발일지

1일차. [PCCE 기출문제] 9번 / 이웃한 칸 본문

코딩테스트/Programmers Level 1

1일차. [PCCE 기출문제] 9번 / 이웃한 칸

자유로운영혼이다냥 2023. 11. 24. 22:48

 

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

 

프로그래머스

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

programmers.co.kr

문제

각 칸마다 색이 칠해진 2차원 격자 보드판이 있습니다. 그중 한 칸을 골랐을 때, 위, 아래, 왼쪽, 오른쪽 칸 중 같은 색깔로 칠해진 칸의 개수를 구하려고 합니다.

보드의 각 칸에 칠해진 색깔 이름이 담긴 이차원 문자열 리스트 board와 고른 칸의 위치를 나타내는 두 정수 h, w가 주어질 때 board[h][w]와 이웃한 칸들 중 같은 색으로 칠해져 있는 칸의 개수를 return 하도록 solution 함수를 완성해 주세요.

 

해결법: 중앙을 기준으로 위 아래 왼쪽 오른쪽이기 때문에 h와 w에 각각 1과 -1씩 빼가면서 board[h][w]와 비교한 값을 int로 변경하여 더하면 된다.

def solution(board, h, w):
    answer = 0
    n = len(board)
    color = board[h][w]
    dh = [0, 1, -1, 0]
    dw = [1, 0, 0, -1]
    for i in range(0,4):
        hc = h+dh[i]
        wc = w+dw[i]
        if 0 <= hc < n and 0 <= wc < n:
            answer += int(color==board[hc][wc])
    return answer