코딩테스트 문제풀이/inflearn

[인프런] Node.js / 섹션1 - 기본문제 풀이 / 1. 세 수 중 최솟값

sangchu 2022. 7. 24. 00:18

세 수 중 최솟값(정렬 이용x)

 

나의 풀이 1

function solution(a, b, c) {
  let answer;
  if (a > b && a > c) {
    if (b > c) {
      answer = c;
    } else {
      answer = b;
    }
  } else if (b > a && b > c) {
    if (a > c) {
      answer = c;
    } else {
      answer = a;
    }
  } else {
    if (a > b) {
      answer = b;
    } else {
      answer = a;
    }
  }

  return answer;
}

console.log(solution(2, 5, 1));

원하는대로 잘 동작하는 코드이다.

하지만 '가장 작은 수'를 찾는건데, 1, 2번째 수도 구별하도록 하여 좋지 않은 코드이다.

 

 

나의 풀이 2

function solution(a, b, c) {
  let answer;
  if (a < b && a < c) {
    answer = a;
  } else if (b < a && b < c) {
    answer = b;
  } else if (c < a && c < b) {
    answer = c;
  } else {
    answer = a;
  }
  return answer;
}

console.log(solution(2, 5, 1));

위 코드보단 간결해졌다.

그저 한 문자가 다른 문자들보다 작기만하면 최솟값이도록 설정했다.

 

 

강사 풀이

function solution(a, b, c) {
  let answer;
  if (a < b) {
    answer = a;
  } else {
    answer = b;
  }
  if (c < answer) {
    answer = c;
  }
  return answer;
}

console.log(solution(2, 5, 1));

먼저 1, 2번째 매개변수를 비교해서 최솟값을 구한 뒤,

3번째 매개변수와 비교하는 방법이다.