코딩테스트 문제풀이/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번째 매개변수와 비교하는 방법이다.