frontend/javaScript

[js / 알고리즘연습] codeup - 가장 큰 수 출력, 짝홀수 출력하기

김포레스트 2023. 8. 18. 16:37

code up 에는 js 문제가 없지만 js 버전으로 치환해서 풀어보도록 한다.

그래도 뭐 별문제 없어보임. 

 

 

오늘의 문제.

 

 

1. 삼항연산자를 이용해서 정수 3개 입력받아 가장 큰 수 출력하기

function solution(n, m, l) {
	var result = (n > m) ? n : m;
	result = (result > l) ? result : l;

	console.log(result);
}

solution(1, 91, 0);

 

근데 뭔가.................................. 좀 이상한 것 같다.

왜냐하면, 파라미터로 세개를 받아왔으니 두번 비교를 해서 출력하긴 했는데,

만약에... 파라미터가 한 200개 된다면.. 우짜지..? 

그렇게 코드를 짜는 경우가 있을까만은..................................................

 

function solution(n, m, l, o, p) {
	var result = (n > m) ? n : m;
	result = (result > l) ? result : l;
	result = (result > o) ? result : o;
	result = (result > p) ? result : p;
    
	console.log(result);
}

solution(1, 91, 0, -1, 300);

파라미터가 다섯개만 해도 코드가 이렇게 늘어진다.

줄여볼 수 있을까..?

 

찾았다. 파라미터를 배열로 받아주는 rest 파라미터가 있다. 

function solution(...params) {
	console.log("🚀 ~ file: codeup.html:132 ~ solution ~ params:", params);
	
	var result = params.reduce((acc, crr) => (acc > crr) ? acc : crr);

	console.log(result);
}

solution(1, 91, 0, -1, 300);

 

** 출력 화면 ** 

 

신난당 ㅋㅋㅋㅋ 

제시된 조건대로 삼항연산자도 사용했고, 코드의 길이도 짧아졌으며

입력할 숫자의 갯수에도 제한이 없어졌다.

 

 

 

2. 정수 3개 입력받아 짝수만 출력하기

function solution(...params) {
	// console.log("🚀 ~ file: codeup.html:132 ~ solution ~ params:", params);
	
	var filter = params.filter(function(crr, idx, arr) {
		
		var result = (crr % 2 == 0) ? true : false;

		return result;
	});

	console.log("🚀 ~ file: codeup.html:135 ~ solution ~ result:", filter);
}

solution(1, 91, 2, -1, 300);

 

** 출력화면 **

 

3. 정수 3개 입력받아 짝/홀 출력하기

function solution(...params) {
  // console.log("🚀 ~ file: codeup.html:132 ~ solution ~ params:", params);
  var result;
  params.forEach(function(n, i) {
    if (n % 2 == 0) {
      result = 'even';
      console.log(n + ' is ' + result);
    } else {
      result = 'odd';
      console.log(n + ' is ' + result);
    }
  });
}

solution(1, 91, 2, 57, 300);

 

** 출력화면 **

 

 

 

 

 

 

 

-끗-