[문제]
각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
[풀이]
function solution(angle) {
if (angle > 0 && angle < 90) {
return 1; // 예각
} else if (angle === 90) {
return 2; // 직각
} else if (angle > 90 && angle < 180) {
return 3; // 둔각
} else if (angle === 180) {
return 4; // 평각
}
}
// 테스트
console.log(solution(45)); // 1
console.log(solution(90)); // 2
console.log(solution(120)); // 3
console.log(solution(180)); // 4
처음 문제를 보자마자 if문 else if 로 접근해야겠다고 생각해서 아래와 같이 작성 테스트 해보았지만 실패!
연속된 비교를 체이닝하는 대신, 위 정답 코드처럼 각 조건을 별도로 작성해야만 한다!
++위에서 사용된 &&는 javaScript 논리 연산자 중 하나로, 논리적 AND 연산을 수행한다. && 연산자는 주어진 피연산자가 모두 true일 때 true를 반환하고, 그 외의 경우에는 false를 반환하는데, 일반적으로 조건문에서 사용되며 여러 개의 조건을 동시에 검사하는데 유용하다!
function solution(angle) {
if (0 < angle < 90) {
return 1;
} else if (angle === 90) {
return 2;
} else if (90 < angle < 180) {
return 3;
} else if (angle === 180) {
return 4;
}
}
[문제]
2. 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
[풀이]
// 만약 a를 2로 나눈 값이 정수이고 && a가 n보다 작다면
// a의 경우의 수를 모두 더해라
function solution(n) {
let answer = 0;
for (let a = 1; a < n+1; a++) { // for 루프를 사용! a라는 변수를 1부터 시작하여 n을 포함해 n보다 작은 수까지 1씩 증가
if (a % 2 === 0) { // a를 2로 나눈 나머지 값이 0과 같다면 정수!
answer += a; // answer에 a값을 누적 저장
}
}
return answer;
}
// 아래와 같이 for문에서 바로 짝수를 솎아내주면서 if문 없이, 더 간단하게 만들 수 있었다.
function solution(n) {
var answer = 0;
for(let i=2 ; i<=n ; i+=2) //for 루프를 사용하여 i라는 변수를 2부터 시작하여 n보다 작거나 같을 때까지 2씩 증가
answer += i;
return answer;
}
'What I Learnd > TIL' 카테고리의 다른 글
TIL - useState와 이벤트 핸들러를 이용한 실습 "좋아요 +, 싫어요 - 호감도 숫자 구현!" (0) | 2023.06.14 |
---|---|
TIL - React 개발 프로젝트 생성(CRA)과 설치 / 바벨이 뭐야? (0) | 2023.06.13 |
TIL - 연산자 정리 (0) | 2023.06.09 |
TIL - 소수점 자리수 올림, 내림, 반올림, 제거하기 (0) | 2023.06.08 |
TIL - JavaScript 기초문법 정리 3 (ES6 문법 정리, 일급객체로서의 함수, Map과 Set) (0) | 2023.05.25 |