[백준 26340] Fold the Paper Nicely (C#, C++) - soo:bak
작성일 :
문제 링크
26340번 - Fold the Paper Nicely
설명
간단한 수학과 구현 관련 문제입니다.
문제의 목표는 Orooji 박사가 달력을 반복해서 접었을 때, 최종적인 달력의 가로/세로 길이를 구하는 것입니다.
문제에서 주어진 Orooji 박사의 달력 접기 방법은 다음과 같습니다.
- 가로/세로 중 길이가 더 긴쪽을 반으로 접는다.
- 입력으로 주어지는 ‘접는 횟수’ 만큼 반복해서 접는다.
해당 정보를 이용하여 주어진 입력에 따라 계산된 달력의 최종적인 가로/세로 길이
를 출력 조건에 맞추어 출력합니다.
Code
[ C# ]
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
namespace Solution {
class Program {
static void Main(string[] args) {
var dataSetNum = int.Parse(Console.ReadLine()!);
for (int i = 0; i < dataSetNum; i++) {
var input = Console.ReadLine()?.Split();
var rectSide_1 = int.Parse(input![0]);
var rectSide_2 = int.Parse(input![1]);
var foldingNum = int.Parse(input![2]);
Console.WriteLine($"Data set: {rectSide_1} {rectSide_2} {foldingNum}");
for (int j = 0; j < foldingNum; j++) {
if (rectSide_1 > rectSide_2) rectSide_1 /= 2;
else rectSide_2 /= 2;
}
Console.WriteLine($"{Math.Max(rectSide_1, rectSide_2)} {Math.Min(rectSide_1, rectSide_2)}");
if (i != dataSetNum - 1) Console.Write("\n");
}
}
}
}
[ C++ ]
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
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int dataSetNum; cin >> dataSetNum;
for (int i = 0; i < dataSetNum; i++) {
int rectSide_1, rectSide_2, foldingNum;
cin >> rectSide_1 >> rectSide_2 >> foldingNum;
cout << "Data set: " << rectSide_1 << " " << rectSide_2 << " " << foldingNum << "\n";
for (int j = 0; j < foldingNum; j++) {
if (rectSide_1 > rectSide_2) rectSide_1 /= 2;
else rectSide_2 /= 2;
}
cout << max(rectSide_1, rectSide_2) << " " << min(rectSide_1, rectSide_2) << "\n";
if (i != dataSetNum - 1) cout << "\n";
}
return 0;
}