Machineboy空

B081:花壇のロープ 본문

Computer/Coding Test

B081:花壇のロープ

안녕도라 2025. 5. 27. 11:59

문제요약

꽃밭에 필요한 테두리 로프 길이를 구하라

 


난이도

Rank B


풀이 포인트

  • 외곽선 조사

REVIEW

 

복잡하게 생각할 필요없이 외곽에 닿은 곳은 로프, 꽃과 닿은 곳은 로프 아님의 로직으로 풀면 되는 문제였다.

 


CODE

using System;
using System.Linq;

class Program
{
    static char[,] grid;
    static int h, w;

    static int[] dx = {-1, 1, 0, 0};
    static int[] dy = {0, 0, -1, 1};

    static void Main()
    {
        var line = Console.ReadLine().Split().Select(int.Parse).ToArray();
        h = line[0];
        w = line[1];

        grid = new char[h, w];

        for (int i = 0; i < h; i++)
        {
            var row = Console.ReadLine();
            for (int j = 0; j < w; j++)
            {
                grid[i, j] = row[j];
            }
        }

        int perimeter = 0;

        for (int i = 0; i < h; i++)
        {
            for (int j = 0; j < w; j++)
            {
                if (grid[i, j] == '#')
                {
                    for (int dir = 0; dir < 4; dir++)
                    {
                        int ni = i + dx[dir];
                        int nj = j + dy[dir];

                        if (ni < 0 || nj < 0 || ni >= h || nj >= w || grid[ni, nj] == '.')
                        {
                            perimeter++;
                        }
                    }
                }
            }
        }

        Console.WriteLine(perimeter);
    }
}

'Computer > Coding Test' 카테고리의 다른 글

「RPG C#編」  (0) 2025.06.04
クラスの継承  (0) 2025.06.03
A074:オリオン座  (0) 2025.05.16
B140:ネズミ駆除 OrderByDescending  (0) 2025.05.13
B145:ビンゴゲームの判定 - 2중 For 문 LINQ  (0) 2025.05.12