자료구조알고리즘/문제풀이
[프로그래머스][Lv.0] 삼각형의 완성조건 (1)
포시
2022. 12. 27. 15:20
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120889
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 풀이
def solution(sides):
for x in sides:
if x >= sum(sides)-x:
return 2
return 1
list sides에 대해 하나씩 돌아서 나온 요소와 그 요소를 제외한 값의 합을 비교하는 것이므로
이렇게 코드를 짰다.
근데 풀고나서 문제를 다시 보니
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
'가장 긴 변의 길이'로 비교한다는걸 놓쳤다..
그렇다면
def solution(sides):
if max(sides) >= sum(sides)-max(sides):
return 2
return 1
이렇게 for문 없이도 작성할 수 있다.
다른 풀이 A
def solution(sides):
return 1 if max(sides) < (sum(sides) - max(sides)) else 2
Python의 삼항연산자를 이용했다.
다른 풀이 B
def solution(sides):
sides.sort()
return 1 if sides[0]+sides[1]>sides[2] else 2
max()를 안쓰고 sort() 후 제일 마지막 요소를 통해 제일 긴 변의 길이를 찾은 경우
728x90