
출처)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가 있을때 실행할 코드]