삼각형 완성조건(1)
/*
* 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
* 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
* 삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다.
* 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
*/
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// sides_len은 배열 sides의 길이입니다.
int solution(int sides[], size_t sides_len) {
int answer = 0; // 결과를 저장할 변수
int max = sides[0]; // 배열에서 가장 큰 값을 저장할 변수 (초깃값은 배열의 첫번째 값으로 설정)
int sum = 0; // 최댓값을 제외한 나머지 두 변의 합을 저장할 변수
// 배열을 순회하면서 최댓값을 찾고, 동시에 전체 변의 합을 계산
for (int i = 0; i < sides_len; i++){
if (sides[i] > max){ // 현재 값이 max보다 크다면 max를 갱신
max = sides[i];
}
sum += sides[i]; // 모든 변의 길이를 합산
}
sum -= max; // 전체 합에서 최댓값을 제외하여 나머지 두 변의 합을 계산
// 삼각형을 만들 수 있는지 판단
if (max < sum){ // 최댓값이 나머지 두 변의 합보다 작다면 answer에 1 대입
answer = 1;
}
else { // 그렇지 않다면 2를 대입
answer = 2;
}
return answer; // 결과 반환
}
/*
* 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
* 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
* 삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다.
* 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
*/
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int sides[], size_t sides_len);
int main(void)
{
int sides[3];
int sides_len = 3;
for (int j = 0; j < sides_len; j++){
printf("Enter the size : ");
scanf("%d", &sides[j]);
}
int result = solution(sides, sides_len);
if (result == 1){
printf("A triangle can be formed.");
}
else if(result == 2){
printf("A triangle can't be formed.");
}
}
// sides_len은 배열 sides의 길이입니다.
int solution(int sides[], size_t sides_len) {
int answer = 0; // 결과를 저장할 변수
int max = sides[0]; // 배열에서 가장 큰 값을 저장할 변수 (초깃값은 배열의 첫번째 값으로 설정)
int sum = 0; // 최댓값을 제외한 나머지 두 변의 합을 저장할 변수
// 배열을 순회하면서 최댓값을 찾고, 동시에 전체 변의 합을 계산
for (int i = 0; i < sides_len; i++){
if (sides[i] > max){ // 현재 값이 max보다 크다면 max를 갱신
max = sides[i];
}
sum += sides[i]; // 모든 변의 길이를 합산
}
sum -= max; // 전체 합에서 최댓값을 제외하여 나머지 두 변의 합을 계산
// 삼각형을 만들 수 있는지 판단
if (max < sum){ // 최댓값이 나머지 두 변의 합보다 작다면 answer에 1 대입
answer = 1;
}
else { // 그렇지 않다면 2를 대입
answer = 2;
}
return answer; // 결과 반환
}
'C언어 > programmers' 카테고리의 다른 글
[programmers] 짝수의 덧셈 (0) | 2024.09.02 |
---|---|
[programmers] 각도기 (0) | 2024.08.25 |
[programmers] 배열의 평균값 (0) | 2024.08.25 |