✍ Today I Learned
- [while문 퀴즈 3개]
- 2로 나눈 나머지가 0이면 짝수, 1이면 홀수
- 정수 n의 약수를 모두 출력하려면? 정수 n을 최솟값인 1부터 최댓값인 자기 자신까지 나눠서 나머지가 0이면 약수
- 3자리 양의 정수 s에서 1자리 양의 정수 a의 배수를 구하려면? 최솟값인 1부터 최댓값이 자기 자신 s를 a로 나눠서 나머지가 0이면 s안에서 a의 배수
- 3번 퀴즈는 각각의 count를 가지기 때문에 else if 가 아니라 if로 나열해야 한다.
- [중첩 반복문 활용 - 구구단 전체 출력]
- 머리로 시뮬레이션이 가장 안 되는 중첩 반복문..
- 침착하게 기준에 되는 반복 시점을 잘 생각해보기
- 먼저 각 반복 시점을 생각하고 그 시점에 실행되어야 하는 구문을 떠올리면 어렵지 않다.
- 중첩 반복문은 웬만하면 2번 이상 사용하지 않는 것이 좋다.
- [중첩 반복문 활용 - 별탑을 쌓아보자]
- 구구단 출력보다 비교적 쉽게 해결!
- 직각삼각형이 아니라 다른 모양으로도 도전해보기.
- [가위바위보 승률 예측]
- 가위바위보는 for문 안에서 switch문과 삼항 연산자를 함께 사용하면 간단히 구현 가능하다.
- 자바스크립트 내에서 html 문서가 변경되는 부분은 최소화하는 것이 좋다.
toPrecision()
은 지정된 길이로 작성된 숫자를 문자열로 반환한다.
- [로또 1등 당첨 확률]
- 독립 확률이란 한 사건이 일어날 확률이 다른 사건이 일어날 확률에 영향을 미치지 않는다는 것을 의미한다.
- 반복문을 이용하여 6번의 선택에서 정답 숫자 선택 확률을 전부 곱한다.
- [주어진 문장에서 일치하는 단어 개수 찾기]
- 유저에게 입력받은 keyword 변수를 정규식에 사용하기 위해 검색해본 결과 다음과 같은 방법을 찾을 수 있었다! (참고자료)
let pattern = "Abc";
let text = "abcabaAbcabbbcAbc";
let regexAllCase = new RegExp(pattern, "gi"); // 대소문자 구분 없이 모든 패턴을 찾음
console.log(text.replace(regexAllCase, '___')); // ___aba___abbbc___
console.log(text); // abcabaAbcabbbcAbc
- string의 index로 비교하는 방법에서 아주 헷갈렸던 점은
- 반복문 안에서
indexOf()
로 keyword를 찾았다고 그 keyword의 index로 이동한 게 아니라는 것!
- 따라서 찾은 index의 위치를 반환하는
indexOf()
를 다시 사용하여 i=indexOf(keyword,i)
해주면 해결!
indexOf("str", index)
- 특정 문자("str")가 처음으로 등장하는 index 반환. 두 번째 매개변수는 문자를 찾기 시작할 index 지정.
charAt(index)
- 지정 index에 있는 문자를 반환.
- 나를 믿고 내가 생각한 방향을 끝까지 밀고 나가자💪