반응형
블로깅 주제
- 반복문
1. 지금 현재, 당신의 기분이나 느낌을 표현해 주세요.
- 아침에 일어나기가 매우 힘들었다,,^^ 왜 아직도 수요일인거지? 금요일까지 열심히해서 이번주가 끝날 때 열심히 살았다는 뿌듯함을 느끼고싶다.
- 오늘 코플릿에서 소수문제가 나오자마자 멘붕이 왔다 ㅠㅠ 일단 소수를 구하는 알고리즘 자체가 익숙하지 않은 것 같다,, 그래도 페어분이랑 끝까지 붙들고 이해하려고 노력했다 ㅎㅎ 페어분도 열정적으로 임해주셔서 나도 더 빠져서 공부할 수 있었던 것 같다! 백준문제를 하루에 2문제씩 한다고 해놓고,,한문제 푸는 것도 허덕이고 있다ㅠㅠ 6시 이후에 저녁 먹고 바로 복습하고 블로깅하기 바빠서 알고리즘에 더 시간을 못 쏟는 것 같다 ->핑계^^ 그냥 블로깅까지 전부 끝내고 나면 허리도 너무 뻐근하고 머리도 너무 많이 써서 지친 상태가 되어버린다,, 그래도 열심히 하루를 산게 어디냐고 생각하며 스스로를 위로해주려고 한다^^
2. 오늘 무엇을 학습한 내용 중 지금 떠올릴 수 있는 단어를 모두 나열해 주세요.
- 반복문, for, while,소수판별,str.replace(),str.slice(),parseInt,이중 for문
3. 2에서 작성한 단어를 가지고, 오늘의 학습 내용을 설명해 보세요.
- for
반복할 조건을 초기화, 조건식, 증감문 순으로 넣어준다.
for(let n;n<10;n++){}
- while
반복할 조건 중 초기화, 증감문은 따로, 조건식만 괄호 안에 넣어준다.
let sum = 1;
let n = 2;
while(n <= 4) {
sum = sum + n;
n = n + 1;
}
- parseInt() vs Number()
- parseInt()-> 정수 뽑아냄
- Number()-> 정수 그대로 반환
let test = '2022년도';
parseInt(test); // 2022 (정수가 앞에 있어야만 인식됨)
Number(test); // NaN
-str.replace()
str.replace(바꿔질 문자,바꿀문자)
-소수 판별
소수란 1보다 큰 자연수 중 1과 자기자신만을 약수로 가지는 수
- num이 1이면 소수가 아니다
- 짝수는 소수가 아니다(2 제외)
- num보다 작은 수 중에 num을 나눠서 떨어지는 수가 하나라도 있으면 소수가 아니다
+ 제곱근을 쓰는 이유 = 효율성 / 소수판별은 num의 제곱근(중간 값)까지만 검사해봐도 충분함
//제곱근 사용
function isPrime(num) {
if (num === 1) {
return false;
}
if (num === 2) {
return true;
}
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
//미리 짝수를 걸러줘도 됨
function isPrime(num) {
let sqrt = parseInt(Math.sqrt(num));
if (num === 1) {
return false;
}
if (num === 2) {
return true;
}
if (num % 2 === 0) {
return false;
}
for (let i = 3; i <= sqrt; i += 2) { // 홀수만 검사해줘도 되기때문에 i+=2
if (num % i === 0) {
return false;
}
}
return true;
}
- 2 이상의 자연수를 입력받아 2부터 해당 수까지의 소수(prime number)들을 리턴하기
- 2는 이미 소수인 것을 알기 때문에 '2'를 할당한 변수 선언
- 첫번째 반복문은 3부터 num까지 수를 모두 탐색, 홀수만 판단
- 두번째 반복문은 소수 판별
function listPrimes(num) {
let listPrime='2';//2는 무조건 소수니까 처음부터 포함
for(i=3;i<=num;i+=2){//범위, 홀수만 봄
let range=i;
let isPrime=true;
for(n=3;n<=Math.sqrt(range);n+=2){//기능
if(range%n===0){
isPrime=false;
break;
}
}
if(isPrime){
listPrime=`${listPrime}-${range}`;
}
}
return listPrime;
}
반응형
'코드스테이츠 SEB FE 41기 > Section 별 내용 정리' 카테고리의 다른 글
section1/unit6/HTML&CSS 활용(8/29) (0) | 2022.08.29 |
---|---|
section1/unit5/CSS 기초(8/25) (0) | 2022.08.26 |
section1/unit4/HTML 기초(8/24) (0) | 2022.08.25 |
section1/unit3/javascript 기초제어문(8/23) (0) | 2022.08.23 |
section1/unit2/javascript 기초(8/22) (0) | 2022.08.22 |