반응형
https://www.acmicpc.net/problem/11466
11466번: Alex Origami Squares
Alex is fond of origami — Japanese art of paper folding. Most origami designs start with a square sheet of paper. Alex is going to make a present for his mother. Present’s design requires three equal square sheets of paper, but Alex has only one rectan
www.acmicpc.net
수식을 세워 분기문을 써보는 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
직사각형의 너비, 높이를 저장할 double형 일차원 배열 a, 정답을 출력할 ans를 출력합니다.
직사각형을 90도 오른쪽으로 회전한다면 너비는 높이, 높이는 너비가 됩니다. 너비, 높이순으로 입력된 a[0], a[1]를 오름차순으로 정렬해줍니다. 앞으로 a[0]은 너비, a[1]은 높이라고 생각합니다.
📔 풀이과정
1. 너비 * 3 < 높이라면 너비로만 이루어진 정사각형을 만드는 것이 최대이므로 ans = a[0]입니다.
2. 너비 * 1.5 < 높이라면, 너비 * 2 < 높이 * 3, 높이 / 3인 a[1] / 3이 최소 3개 정사각형을 만들 수 있는 ans가 됩니다.
3. 반대라면 너비 / 2가 ans가 됩니다.
📔 정답출력
ans를 소수점 4번째에서 반올림한 값을 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
double a[2], ans;
int main(){
cin >> a[0] >> a[1];
sort(a, a + 2);
if(a[0] * 3 < a[1]) ans = a[0];
else if(a[0] * 1.5 < a[1]) ans = a[1] / 3;
else ans = a[0] / 2;
printf("%.3f", ans);
}