[BOJ/C#] 2163 초콜릿 자르기
Algorithm 2023. 1. 29. 00:40https://www.acmicpc.net/problem/2163
N x M 크기의 초콜릿을 1 x M의 크기로 자르려면 N-1번 자르면 됩니다
잘린 1 x M 크기의 조각 N개를 1 x 1 크기로 쪼개려면 각 M-1번씩 쪼개면 됩니다
이 둘을 계산하면
(N-1) + N*(M-1)
= MN - N + N - 1
= MN - 1
string[] str = Console.ReadLine().Split();
int n = int.Parse(str[0]);
int m = int.Parse(str[1]);
Console.WriteLine("{0}", (n - 1) + ((m - 1) * n));
분할정복으로 풀어보기
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Pipes;
using System.Linq;
using System.Numerics;
using System.Text;
namespace BOJ
{
class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
int[] nm = Array.ConvertAll(sr.ReadLine().Split(), int.Parse);
var len = nm[0] * nm[1];
int[] arr = new int[len];
divide(arr, 0, arr.Length - 1);
sw.WriteLine(cnt);
sr.Close();
sw.Close();
}
private static int cnt;
static void divide(int[] arr, int left, int right)
{
int mid = 0;
if (right - left < 1) return;
cnt++;
mid = (left + right) / 2;
divide(arr, left, mid);
divide(arr, mid+1, right);
}
}
}
'Algorithm' 카테고리의 다른 글
[BOJ/C#] 10162 전자레인지 (0) | 2023.01.31 |
---|---|
[프로그래머스] 비밀지도 (0) | 2023.01.29 |
[BOJ/C#] 3009 네 번째 점 (0) | 2023.01.28 |
[BOJ/C#] 2579 계단오르기 (0) | 2023.01.28 |
[BOJ/C#] 15829 Hashing (0) | 2023.01.27 |