[프로그래머스]

arrrrrr·2023년 3월 22일

Algorithm 공부중 💻

목록 보기
32/33

문제

문제 링크
개념정리, 알고리즘 풀이 팁 링크

내가 푼 풀이

개념 정리

  • 어떤 2변이 주어졌을 때 삼각형이 될 수 있는 경우는 항상 "큰 변에서 작은 변을 뺀 값에서 1을 더한 값부터", "큰 변과 작은 변을 더한 값에서 1을 뺀 값까지"이다.
  • 삼각형은 각도가 필요하기 때문에 가장 큰 변과 나머지 변의 합은 같을 수 없기 때문이다.
✓ 경우 1: b가 가장 긴 변일때,
  b < a + c
  c를 기준으로 이항하면
  b - a < c

✓ 경우 2: c가 가장 긴 변일때,
	c < a + b

따라서 c의 값은 b - a < c < b + a인데
우측항에서 좌측항 - 1이 c의 개수이므로
c의 개수는 (a + b) - (b - a) => 2a - 1이다. 
function solution(sides) {
    return Math.min(...sides)*2 -1;
}

알고리즘 풀이 팁

  1. 주어진 예제를 통해 반복되는 규칙들을 찾는다. 잘 보이지 않는다면 쉬운 방법은 예제를 가지고 직접 손으로 하나씩 값을 구해가며 풀어본다.
  2. 내가 찾은 규칙이 맞는지 테스트 해본다.
  3. 어떻게 작성할지(for, while문을 쓸지.. 등등) 생각 후에 효율성은 생각하지 않고 코드로 구현해본다.
  4. 작성된 코드를 효율적인 코드로 리팩토링해본다.

0개의 댓글