1. n의 배수
[문제 설명]
정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.
[답변]
function solution(num, n) {
return num%n ? 0 : 1;
}
2. 공배수
[문제 설명]
정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
[답변]
function solution(number, n, m) {
return number%n===0 && number%m===0 ? 1 : 0;
}
[놀란 답변]
function solution(number, n, m) {
return +!(number % n || number % m);
}
💡 +, ! 연산자를 이용해서 이렇게 푼 답안을 봤다. 정말 놀라워... 명시적/암묵적 형변환 더 찾아보기 메모...
3. 홀짝에 따라 다른 값 반환하기
[문제 설명]
양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
[답변]
function solution(n) {
let odd = 0;
let even = 0;
for(let i=0; i<=n; i++){
i%2===0 ? even += Math.pow(i, 2) : odd += i;
}
return n%2 ? odd : even;
}
💡 Math.pow(a, b) : a를 b제곱 해주는 함수
[놀란 답변]
function solution(n) {
if(n%2===1)
return (n+1)/2*((n + 1)/2) ;
else
return n*(n+1)*(n+2)/6;
}
💡 등차수열의 합, 자연수 거듭제곱의 합을 구하는 공식을 적용한 풀이... 조건문을 활용하지 않고도 풀 수 있었다. 오늘도 깨닫는 수학의 중요성. 공식이라도 열심히 외워놔야겠다.
4. 조건 문자열
[문제 설명]
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
- 두 수가 n과 m이라면
- ">", "=" : n >= m
- "<", "=" : n <= m
- ">", "!" : n > m
- "<", "!" : n < m
두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.
[답변]
function solution(ineq, eq, n, m) {
const eqOperater = ineq+eq;
if(eqOperater==='<='){
return n <= m ? 1 : 0;
} else if(eqOperater==='>='){
return n >= m ? 1 : 0;
} else if(eqOperater==='<!'){
return n < m ? 1 : 0;
} else if(eqOperater==='>!'){
return n > m ? 1 : 0;
}
}
💡 eval()을 사용해 풀어보려다가 실행할 때마다 컴파일이 일어나기 때문에 이점이 없고 좋지 않다는 사실을 알았다. 또한 string으로 들어오기 때문에 악의적인 공격도 그냥 실행시켜버린다! 보안에 취약하고 단점뿐인 함수... eval.. bye.. 🖐
5. flag에 따라 다른 값 반환하기
[문제 설명]
두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.
[답변]
function solution(a, b, flag) {
return flag ? a+b : a-b;
}
'프로그래머스 > Lv. 0 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스] 코딩 기초 트레이닝 Day 6 / JS (0) | 2023.07.25 |
---|---|
[프로그래머스] 코딩 기초 트레이닝 Day 5 / JS (0) | 2023.07.24 |
[프로그래머스] 코딩 기초 트레이닝 Day 3 / JS (0) | 2023.07.22 |
[프로그래머스] 코딩 기초 트레이닝 Day 2 / JS (0) | 2023.07.21 |
[프로그래머스] 코딩 기초 트레이닝 Day 1 / JS (0) | 2023.07.21 |