728x90
반응형
문제 설명
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한 사항
sides의 원소는 자연수입니다.
sides의 길이는 3입니다.
1 ≤ sides의 원소 ≤ 1,000
입출력 예
sides result
[1, 2, 3] 2
[3, 6, 2] 2
[199, 72, 222] 1
입출력 예 설명
입출력 예 #1
가장 큰 변인 3이 나머지 두 변의 합 3과 같으므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.
입출력 예 #2
가장 큰 변인 6이 나머지 두 변의 합 5보다 크므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.
입출력 예 #3
가장 큰 변인 222가 나머지 두 변의 합 271보다 작으므로 삼각형을 완성할 수 있습니다. 따라서 1을 return합니다.
내 풀이
Java
class Solution {
public int solution(int[] sides) {
int answer = 0;
int max = sides[0];
int idx = 0;
for(int i = 0; i < sides.length; i++){
if(sides[i] > max) {
max = sides[i];
idx = i;
}
}
int sum = 0;
for(int i = 0; i < sides.length; i++){
if(i != idx) sum += sides[i];
}
answer = max < sum ? 1 : 2;
return answer;
}
}
C
#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 idx = 0;
for(int i = 0; i < sides_len; i++){
if(sides[i] > max){
max = sides[i];
idx = i;
}
}
int sum = 0;
for(int i = 0; i < sides_len; i++){
if(i != idx) sum += sides[i];
}
answer = sum > max ? 1 : 2;
return answer;
}
Python
def solution(sides):
answer = 0
sm = sum(sides) - max(sides)
if sm > max(sides):
answer = 1
else:
answer = 2
return answer
https://school.programmers.co.kr/learn/courses/30/lessons/120889
728x90
반응형
'코딩테스트 > 프로그래머스 입문' 카테고리의 다른 글
[코딩테스트 Lv.0] 369게임 (0) | 2024.03.14 |
---|---|
[코딩테스트 Lv.0] 가까운 수 (0) | 2024.03.13 |
[코딩테스트 Lv.0] 중복된 문자 제거 (0) | 2024.03.13 |
[코딩테스트 Lv.0] k의 개수 (0) | 2024.03.12 |
[코딩테스트 Lv.0] A로 B 만들기 (0) | 2024.03.12 |