function oddOrEven(array){
return array.reduce((a,b)=>a+b,0) % 2===0 ? "even": "odd";
}
//reduce 함수를 통해 배열의 합을 더해서 %2를 했을때 나머지가 0이면 even 아니면 odd를 반환.
/**가우스의 합공식으로 계산하면 간단 */
function GetSum(a,b){
// 1+...+n=( n* (n + 1) ) / 2
return (Math.abs(a-b)+1) * Math.abs(a+b) / 2;
}
console.log(GetSum(100,1));
function bmi(weight, height) {
let bmi=weight/(height**2);
if(bmi<= 18.5){
return "Underweight";
}else if(bmi<= 25){
return "Normal"
}else if(bmi <=30.0){
return "Overweight";
}else{
return "Obese";
}
}
/**첫번째로 생각한 방법 */
function isValidWalk(walk) {
function Count(val) {
// Count 라는 함수를 만들어 filter 메서드를 통해 값이 같은걸 세어 반환.
return walk.filter((a) => val === a).length;
}
// walk.length가 10이어야 하고,(10분걷기니까) Count 함수의 n과 s의 갯수가 같아야함, e와w의 갯수가 같아야함.
return (
walk.length === 10 && Count("n") === Count("s") && Count("w") === Count("e")
);
}
/**풀다보니까 너무 가독성이 떨어지는거같아서 어떤방법이 있나 고민해봄. */
function isValidWalk(walk) {
let x = 0;
let y = 0;
for (let direction of walk) {
switch (direction) {
case "n":
y += 1;
case "s":
y -= 1;
case "w":
x += 1;
case "e":
x -= 1;
break;
}
}
// 총 이동거리가 10이어야 함(소요시간10분) 시작지점으로 돌아왔는지 확인
return walk.length ===10 && x===0 && y===0;
}
// for문으로 순회하면서 switch문으로 가독성을 늘림.
7/1일 할일은
unfinished 한 문제들이 15개가 있는데 그중 3개라도 끝내볼 예정.(4kyu 위주로.)