본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 11320 : 삼각 무늬

반응형

https://www.acmicpc.net/problem/11320

 

11320번: 삼각 무늬 - 1

무엇이든 덮어버리는 것을 좋아하는 구사과는 한 변의 길이가 A인 정삼각형을 한 변의 길이가 B인 정삼각형으로 완전히 덮어버리고자 한다. 두 개의 정수 A, B가 주어지고, B ≤ A 이고, A를 B로

www.acmicpc.net

구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

테스트케이스 t, 큰 삼각형 한 변 a , 작은 삼각형 한 변 b를 선언 후 t에 입력받습니다.while loop를 t만큼 수행하며 a, b를 입력받습니다.

📔 풀이과정

한 변의 길이가 x인 삼각형을 길이가 1인 삼각형으로 덮기 위해 필요한 개수에는 다음과 같은 규칙이 있습니다.

x 1짜리 개수
1 1
2 4
3 9
4 16

 

이를 통해 x의 제곱으로 필요 개수가 늘어난 다는 점을 알 수 있습니다. 이를 한 변의 길이 b인 삼각형으로 덮기 위한 개수로 환산하려면 다음과 같습니다.

x * x(x인 삼각형을 1인 삼각형으로 덮는데 필요개수) / b * b(b인 삼각형을 1인 삼각형으로 덮는데 필요개수)

📔 정답출력

a * a / b * b의 결과값에 올림한 뒤 int로 환산한 값이 답이 됩니다. 이를 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
double t, a, b;
int main(){
    cin >> t;
    while(t--){
        cin >> a >> b;
        cout << (int)ceil((a*a) / (b*b)) << '\n';
    }
}