본문 바로가기
코딩테스트 준비/백준 C#

백준 C# - 2563 +) 풀이

by 코딩하는 돼징 2023. 5. 18.
반응형

1. 풀이

01 가로, 세로의 크기가 각각 100인 정사각형 모양의 도화지 만들기

int[,] array = new int[100, 100];

02 색종이 수 입력 받기

int n = int.Parse(Console.ReadLine());

03 색종이 붙일 위치 입력 받기

for (int i = 0; i < n; i++)
{
    string input = Console.ReadLine();
    string[] token = input.Split();
    int x = int.Parse(token[0]);
    int y = int.Parse(token[1]);
}

04 도화지에 색칠하기

for (int j = x; j < x + 10; j++)
{
    int num = 0;
    for (int w = y; w < y + 10; w++)
    {
        if (array[j, w] == 0)
        {
            array[j, w] = 1;
            answer++;
        }
    }
}

코드 풀이

0) 변수 answer는 검은 영역 넓이

1) 색종이 붙일 위치는 (x,y)(아래 그림 참조)이다. 가로 세로 길이가 10인 사각형이므로 for문의 범위가 x+10, y+10 이 된다.

2) 입력을 받을때 해당 범위에 있는 위치의 배열값을 검은 영역이라는 뜻으로 0에서 1로 바꿔준다. 배열의 각 한 칸은 넓이가 1인 사각형이므로 검은영역 한 칸이 생길때마다 answer++을 한다.

3) 새로운 위치 값을 받으면서 새로운 사각형들이 생기는데 이미 존재했으면 1로 바꿔줄 필요가 없고 0이였으면 1로 바꿔준다.


2. 출력 예시

01 1 1

02 0 2(위에 1번과 누적)

03 3 3(위에 2번과 누적)


3. 최종 코드

using System;
using System.Collections.Generic;

namespace baek2
{
   class Program
    {
        static void Main(string[] args)
        {
            int[,] array = new int[100, 100];
            
            int answer = 0;
            int n = int.Parse(Console.ReadLine());
            for (int i = 0; i < n; i++)
            {
                string input = Console.ReadLine();
                string[] token = input.Split();
                int x = int.Parse(token[0]);
                int y = int.Parse(token[1]);

                for (int j = x; j < x + 10; j++)
                {
                    for (int w = y; w < y + 10; w++)
                    {
                        if (array[j, w] == 0)
                        {
                            array[j, w] = 1;
                            answer++;
                        }   
                    }
                }
            }
            Console.WriteLine(answer);
        }
    }
}

 

반응형

'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글

백준 C# - 11005 +) 풀이  (0) 2023.05.25
백준 C# - 2745  (0) 2023.05.25
백준 C# - 10798  (0) 2023.05.18
백준 C# - 2566  (0) 2023.05.17
백준 C# - 2738  (0) 2023.05.15

댓글