Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- yarn-berry
- Rest
- nvm
- 다리놓기
- 커스텀알락
- iP
- leetcode977
- 자바스크립트
- react-firebaseui
- Python
- Spread
- react-native
- nvmrc
- JS
- 기초
- 타입스크립트
- 파이어베이스로그인
- css
- youtube iframe
- 프로토타입
- mac
- leetcode189
- 커스텀알림
- Next.js
- 리액트
- 파이썬
- firebaseui
- React
- 백준
- 구조분해할당
Archives
- Today
- Total
JadeCode
[리뷰]JavaScript 기초 제어문(반복문) 본문
반복문
단순한 반복을 보다 효율적이고 간결하게 할 수 있도록 한다.
반복문의 기본 형태는 다음과 같다.
초기화, 조건식, 증감문
반복문은 개념이 어렵지 않지만 문제를 풀어보면 많이 어렵다.
여러 번 해 보는게 답이다.
다음은 반복문을 사용하는 가장 기초적인 문제들이다
* 2단부터 9단까지의 구구단 출력
function gugu() {
for (let i = 2; i <= 9; i++) {
for (let j = 1; j <= 9; j++) {
console.log(`${i} * ${j} = ${i * j}`);
}
}
}
gugu();
* 소수출력
소수를 출력하는 데 새로운 방법을 알아냈다.
기본적인 생각으로는 i 는 parameter num부터 시작해서 1 보다 클 때 까지 감소하여 반복문을 돌리는데 num % i 가 0이 나오면 약수가 있는 것이니까 false로 return 하고 반복문을 다 돌릴 때 까지 조건에 들지 않으면 true로 리턴하면 풀 수 있다고 생각했다.
function confirmPrime(num) {
if(num === 1){
return false;
} else {
for (let i = num-1 ; i > 1; i--){
if (num % i === 0) {
return false;
}
}
return true;
}
}
하지만 이와 같을 경우 불필요한 연산을 하게 되는 경우가 있어서 다른 자료들을 찾아봤다.
제곱근을 사용하여 더 효율적으로 풀 수 있다.
일단 그 수의 제곱근을 저장하고, i를 num의 제곱근에서 정수부분만큼 돌려서 나머지가 0 이 나오면 결국 약수가 있는 것이고 그렇지 않으면 그 수는 소수인 것이다.
function confirmPrime(num) {
let sqrt = Math.floor((Math.sqrt(num))); #소숫점 뒤에는 버린다
if (num === 1) { # 1은 소수가 아니다
return false;
}
if (num === 2) { # 2는 소수이다
return true;
}
if (num % 2 === 0) { # 짝수는 소수가 아니다
return false;
}
for (let i = 3; i <= sqrt; i += 2) {
if (num % i === 0) {
return false;
}
}
return true;
}
이 개념을 이해하는 데는 시간이 걸렸으나 더 유용한 것 같다.
기초 제어문인 조건문, 문자열, 반복문을 공부하면서 기초를 제대로 잡아야겠다는 생각이 들었다.
'개발 > 웹' 카테고리의 다른 글
[리뷰] [HTML/CSS] 활용 (0) | 2022.05.03 |
---|---|
[리뷰] CSS 기초 (0) | 2022.05.02 |
[리뷰] HTML 기초 (0) | 2022.04.29 |
[리뷰] JavaScript 기초 제어문(조건문, 문자열) (0) | 2022.04.27 |
[리뷰] JavaScript 기초 (0) | 2022.04.26 |
Comments