[백준 26535] Chicken Pen (C#, C++) - soo:bak
작성일 :
문제 링크
설명
닭 수가 주어질 때, 내부 칸이 충분한 최소 정사각형 울타리를 그리는 문제입니다.
접근법
내부 칸 수가 닭 수 이상이 되도록 최소 한 변 길이를 구합니다. 전체 울타리 크기는 내부 한 변에 2를 더한 값입니다.
이후 첫 줄과 마지막 줄은 모두 x로 채우고, 중간 줄은 양쪽 끝만 x로 두고 내부는 점으로 채워 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
class Program {
static void Main() {
var n = int.Parse(Console.ReadLine()!);
var s = 1;
while (s * s < n) s++;
var size = s + 2;
var border = new string('x', size);
Console.WriteLine(border);
for (var i = 0; i < s; i++)
Console.WriteLine("x" + new string('.', s) + "x");
Console.WriteLine(border);
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n; cin >> n;
int s = 1;
while (s * s < n) s++;
int size = s + 2;
string border(size, 'x');
cout << border << "\n";
for (int i = 0; i < s; i++)
cout << "x" << string(s, '.') << "x\n";
cout << border << "\n";
return 0;
}