출처)https://school.programmers.co.kr/learn/courses/30/lessons/181929
<내 풀이>
function solution(num_list) {
var answer = 0;
function addAll(arr) {
let sum = 0;
for (const num of arr) {
sum += num;
}
return sum;
}
function multiplyAll(arr) {
let multiplyresult = 1;
for (const num of arr) {
multiplyresult *= num;
}
return multiplyresult;
}
multiplyAll(num_list) < addAll(num_list) * addAll(num_list)
? (answer = 1)
: (answer = 0);
return answer;
}
<다른 사람 풀이>
function solution2(num_list) {
let accMul = 1;
let accSum = 0;
for (const num of num_list) {
accMul *= num;
accSum += num;
}
return accMul < accSum ** 2 ? 1 : 0;
}
<배운점>
var answer
라고 선언된 변수는 굳이 사용하지 않아도 되나 보다. 출처)https://school.programmers.co.kr/learn/courses/30/lessons/181839
1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 a, b라고 했을 때 얻는 점수는 다음과 같습니다.
a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다.
a와 b 모두 홀수가 아니라면 |a - b| 점을 얻습니다.
두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
<내 풀이>
function solution(a, b) {
if(a%2===1 && b%2===1){
return a**2+b**2
} else if (a%2!==1 && b%2===1 ||a%2===1 && b%2!==1){
return 2*(a+b)
}else {return Math.abs(a-b)}
}
<배운점>
Math.abs()
처음 사용해봄 => 절댓값을 구해주는 메서드. const person={
name: "jun",
age : "25",
hobby: ['coding','cooking']
}
다음과 같은 객체가 있을때 객체의 속성에 접근하는 방식으로 person.name
이나 person.hobby
와 같은 'dot notation'을 사용하는 것은 이미 알고 있다.
그런데 모종의 이유로 존재하지 않는 속성을 함수나 다른 코드에서 참조하려 한다면 해당 코드가 정상적으로 작동하지 않을 것이다. 예컨대 위 객체에 존재하지 않는 gender 값을 참조하려 하는 상황을 생각해 볼 수 있다.
이때 obj?.gender 와 같이 선택적 연결을 이용하면 gender가 존재하는 경우 gender의 value를 정상적으로 참조해오고, gender가 존재하지 않는 경우 undefined 를 반환하게 할 수 있다.
이를 응용하여 삼항연산자 등에 사용할 수 있다.
person?.gender === undefiend ? [gender가 없을때 실행할코드] : [gender가 있을때 실행할 코드]