문제설명
3개의 변의 길이를 주는데 이들을 이용하여 삼각형을 만들수 있는지 없는지를 반환 하라(가능하면 1 안된다면 2)
가장 긴변의 길이는 다른 두변의 길이보다 작아야만 삼각형을 만들수 있다
제한사항
입출력 예
말로하는 순서도
solution 함수 선언 및 매개변수 주어진 정수가 담길 배열 변수 int형 sides 배열의길이를 담을 변수 slze_t형 sides_len 반환형 int
answer이라는 계산값 및 최종 반환값을 저장할 변수 선언
for문 배열의길이만큼 반복(i)
for문 배열의길이만큼 반복(x)
if문 sides의y위치의 값 보다 sides의x위치의 값이 더 크다면
flag에 sides의y 위치의 값을 넣는다
sides의y 에 sides의x 위치의 값을 넣는다
sides의x 에 flag의 값을 넣는다
if문 sides의 2위치의 값이 sides 0위치의값+sides 1위치의값 보다 크거나 같을때
answer의 2를 넣어라
else문
answer에 1을 넣어라
최종반환
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// sides_len은 배열 sides의 길이입니다.
int solution(int sides[], size_t sides_len) {
int answer = 0,flag=0;
for(int i=0; i<sides_len;i++)
{
for(int x=0;x<sides_len;x++)
{
if(sides[i]<sides[x])
{
flag=sides[i];
sides[i]=sides[x];
sides[x]=flag;
}
if(sides[2]>=(sides[0]+sides[1]))
{
answer=2;
}
else
{
answer=1;
}
}
}
return answer;
}
풀이
오름차순으로 정렬한후 그 순서에 맞춰서 비교하여 해결한다
위치값은 3개의 원소만 주기에 숫자로 고정하였다
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120889
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90