https://www.acmicpc.net/problem/14215
주어진 세 변의 길이를 원하는 만큼 줄여, 삼각형의 조건을 만족시키는 최대 둘레 길이를 구하면 된다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int arr[3];
for (int i=0;i<3;i++){
cin >> arr[i];
}
sort(arr, arr+3);
while(arr[2] >= arr[0]+arr[1]) {
arr[2]--;
}
int answer = arr[0] + arr[1] + arr[2];
cout << answer;
}
삼각형의 조건을 만족하려면, 가장 긴 변의 길이가 나머지 두 변의 길이의 합보다 작아야 한다.
그러므로, 정렬을 통해 가장 긴 변을 찾고, 나머지 두 변의 길이의 합 보다 작아질 때 까지 1씩 뺀다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 24263번 알고리즘 수업 - 알고리즘의 수행 시간 2 [C++] (0) | 2023.12.08 |
---|---|
백준 24262번 알고리즘 수업 - 알고리즘의 수행 시간 1 [C++] (1) | 2023.12.07 |
백준 9036번 대지 [C++] (2) | 2023.12.06 |
백준 15894번 수학은 체육과목 입니다 [C++] (1) | 2023.12.05 |
백준 3009번 네 번째 점 [C++] (1) | 2023.12.04 |