38. Coding Challenge #1

황교진·2022년 8월 10일
0

JavaScript

목록 보기
4/6
post-custom-banner

< 풀이>

Data1 : winter score 44, 23 and 71 , halfMoon score 65,54 and 49
Data2 : winter score 85, 54 and 41 , halfMoon score 23, 34 and 27

Arrow Function --> const function Name = (Parameter) => expression(value)

1. 조건 두 팀간의 스코어가 2배이상 차이날 경우에만 승자가 존재, 그렇지 않으면 이기는 팀은 없음.
2. Arrow Function 사용해보기


const calcAverage = (score) => score / 3;

주어진 데이터를 어떻게 넣을지 몰라서 socre라는 매개변수를 주었는데 reference code를 보니 굳이 score 보다는 a, b, c 로 주는게 더 직관적인거 같다.


const winterAverage = calcAverage(85 + 54 + 41);
const halfMoonAverage = calcAverage(23 + 34 + 27);

console.log(winterAverage);
console.log(halfMoonAverage);

const teamAverage = function (winter, halfMoon) {
  return (winterAverage + halfMoonAverage) / 2;
};

const result = teamAverage(winterAverage, halfMoonAverage);
// console.log(result);

const checkWinner = function (winter, halfMoon) {
  if (winterAverage >= halfMoonAverage * 2 && winterAverage > halfMoonAverage) {
    return `winter win ${winterAverage} vs ${halfMoonAverage}`;

조건에 이미 witnerAverage >= haflMoonAverage * 2을 주었는데 나는 왜인지 코드를 작성할떄는 winterAverage > halfMoonAverage 라는 조건을 한번더 충족해야 될꺼같다고 생각해서 &&(and) 연산자를 한번더 써주었는데 필요없는 조건이다. 아래도 동일하게 작성해서 코드만 길어졌다.

  } else if (
    halfMoonAverage >= winterAverage * 2 &&
    halfMoonAverage > winterAverage
  ) {
    return `halfMoon win ${halfMoonAverage} vs ${winterAverage}`;
  } else {
    return "No team wins!";
  }
};

const winner = checkWinner(winterAverage, halfMoonAverage);
console.log(winner);
<Reference code>

두번의 데이터조건을 충족시켜야 하기때문에 재할당이 가능한 let을 써주었다. 내가 작성할땐 score값을 일일히 하드코딩해서 콜솔을 찍어보았다.
또 한 바로 console에 안찍어보고 const reusl = 형태로 변환하여 출력하는 이유는 아직 내가 이 방식이 익숙치 않아 연습하기 위해 쓰는 중이다.



const calcAverage = (a, b, c) => (a + b + c) / 3;
//한줄의 Allow Function 은 return을 작성해 주지 않아도 된다.
// console.log(calcAverage(44, 23, 71));

let scoreWinter = calcAverage(44, 23, 71);
let scoreHalfMoon = calcAverage(65, 54, 49);
// 재할당 위해 let 으로 바꾸자
console.log(scoreWinter, scoreHalfMoon);

const checkWinner = function (avgWinter, avgHalfMoon) {
  if (scoreWinter >= scoreHalfMoon * 2) {
    console.log(`winter win ${scoreWinter} vs ${scoreHalfMoon}`);
  } else if (scoreHalfMoon >= scoreWinter * 2) {
    console.log(`halfMoon win ${scoreHalfMoon} vs ${scoreWinter}`);
  } else {
    console.log("No team wins!");
  }
};

checkWinner(scoreWinter, scoreHalfMoon);

// Data2 : winter score 85, 54 and 41 , halfMoon score 23, 34 and 27

scoreWinter = calcAverage(85, 54, 41);
scoreHalfMoon = calcAverage(23, 34, 27);
console.log(scoreWinter, scoreHalfMoon);
checkWinner(scoreWinter, scoreHalfMoon);

현재 수강하고 있는 강의는 유데미에 있는
The Complete JavaScript Course 2022: From Zero to Expert!
라는 강의다 초보자부터 배울 수 있게 고안된 강의인 만큼 값만 나오면 일단 그 코드는 옳은 코드라며 걱정하지 말라고 위로를 많이해주는데 아직 이런간단한 함수식을 작성하는데도 많은 어려움이 있다. 강의가 매우 세세하게 가르쳐 주어서 많은 도움이 되고있고 언젠간 나도 막힘없이 코드를 작성 할 수 있는 날이 오길 간절히 원한다.

post-custom-banner

0개의 댓글