fcscode의 등록된 링크

 fcscode로 등록된 티스토리 포스트 수는 79건입니다.

[백준 - node.js] 스타트와 링크 14889번 [내부링크]

문제 설명 핵심 1. 팀 구성에 대한 모든 경우의 수를 구하기 2. 각 팀에서 얻을 수 있는 모든 능력치의 합을 구하기 문제 풀이 const readline = require('readline'); const rl = readline.createInterface({ inp..

[백준 - Node.js] 암호 만들기 1759번 [내부링크]

문제 설명 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알..

[백준 - node.js] 1, 2, 3 더하기 9095번 [내부링크]

문제 설명 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 풀이 const readline = require('re..

[백준 - node.js] 외판원 순회2 10971번 [내부링크]

문제 설명 https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의..

[백준] 다음 순열 10972번 - Javascript / Node.js [내부링크]

문제 설명 문제 풀이 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; let n = 0; let count = 0; rl.on('li..

MVC 아키텍쳐 [내부링크]

Model 컨트롤러가 호출 시 요청에 맞는 역할을 수행 비즈니스로직의 구현영역 *비즈니스 로직 : 업무에 필요한 데이터를 처리하는 응용프로그램의 일부 상태가 변하면 컨트롤러와 뷰에 다음 명령을 요청한다. View..

Test Driven Development (TDD) [내부링크]

Test Driven Development 테스트가 주도하는 코드 작성 방식 자동화된 테스트케이스를 생성하고 그 테스트를 통과하는 코드를 작성한다. 기능을 추가하기 전에 테스트를 작성한다 장점 1. 테스..

[백준] 후위 표기식2 1935번 - Javascript / Node.js [내부링크]

문제 설명 문제 풀이 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; let count = 0; let expression = '';..

REST API [내부링크]

Representational State Transfer 디자인패턴X vs 아키텍쳐O 아키텍쳐란? 최적화를 위하여 시스템을 설계하는 설계도 Rest의 특징  1. 유니폼 인터페이스  통일된 인터페이스로 실행되는 아키텍쳐 스타일..

객체 지향형 프로그래밍 [내부링크]

인간 중심적 프로그래밍 (Object Oriented Programming) 현실의 객체에서 특징들을 뽑아와서 프로그래밍하는것 ⇒ 추상화 코드의 재사용성이 높고 잘만들어 놓으면 버그의 발생률이 줄어든다 객체간에 메세지 교환..

[백준] 2559 수열 - Node/js [내부링크]

문제 설명 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는..

[백준] 3273 두 수의 합 - Node/Js [내부링크]

문제 설명 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x..

[백준] 11728 배열 합치기 - Node/Js [내부링크]

문제 설명 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는..

Big O Notation (Big O 표기법) [내부링크]

왜 사용하는가? 코드의 효율성 판별 수동적인 시간측정의 문제 해결 어떻게 사용하는가? 완벽한 시간을 구하는게 아님 ⇒ 연산의 갯수를 구하여 전체적인 추세를 파악하기 위함 1. 시간복잡도 종류: O(1) : 값이변..

[프로그래머스] JadenCase - 자바스크립트 [내부링크]

문제 설명 s를 나눠서 단어로 만들어주고 -> 단어를 나눠서 첫번째 요소를 대문자로 바꿔준다. 첫 문자가 숫자일 때와 공백일때를 대비해준다. 문제 풀이 function solution(s) { const splited = s.toLowerCase(..

[프로그래머스] 다리를 지나는 트럭 -자바스크립트 [내부링크]

문제 설명 다리에서 들어오고 나갈때 카운트 해야함 다리의 배열 요소의 합 + 현재 대기 트럭무게의 합이 weight를 넘어서면 안됨 문제 풀이 function solution(bridge_length, weight, truck_weights) { const b..

[프로그래머스] 가장 큰 수 -JS [내부링크]

문제 설명 합쳐서 비교하기 위해 문자열로 바꿔서 정렬해주고 sort함수를 이용하여 비교 배열 요소 모두 0일때는 가장 큰 수는 0 이므로 0리턴 문제 풀이 function solution(numbers) { let answer = numbers.map..

[프로그래머스] 프린터 -JS [내부링크]

문제 설명 순서 비교를 위하여 초기위치를 키값으로 배정한다. 배열의 가장 앞 요소와 나머지 요소들을 비교하여 큰 값이 존재한다면 배열의 맨뒤로 보내고 자신이 가장 크다면 printed 카운트(프린트 된 순서)를..

[프로그래머스] 타겟 넘버 -JS [내부링크]

문제 설명 dfs개념 활용 dfs = 깊이우선탐색 하나의 노드를 다 돈 후에 마지막에 실행된 스택을 지우고 인접한 상위 노드를 방문한다. 이 문제의 예로 보자면 +를 다돈 후 +트리의 마지막 부터 -로 갈라짐 또 -..

[프로그래머스] 스킬트리 -JS [내부링크]

문제 설명 skill을 포함하는 것만 남기고 Index로 비교 문제 풀이 const isSorted = arr => { for(let i =0; i < arr.length; i++) if(arr[i] !== i) return false return true } function solution(skill, skill..

[프로그래머스] 기능개발 - JS [내부링크]

문제 설명 문제 풀이 function solution(progresses, speeds) { const answer = [] const rest = progresses.map((e,i)=>{ return Math.ceil((100-e)/speeds[i]) }) let maxRest = rest[0] let count = 1 for(let..

Error Boundary - React [내부링크]

1. 오류 경계란?  - 오류가 일어났을 때 웹사이트를 중지시키지 않고 에러관리를 할 수 있도록함.  - 기본 자바스크립트 try and catch와 유사함  - 일종의 컴포넌트  - 함수형 컴포넌트에서는 이용이 불가하..

[프로그래머스] 신고 결과 받기 -JS [내부링크]

문제 설명 // 신고횟수 제한 X // 동일유저신고 1회로 // k번신고되면 정지 // 취합후 마지막에 한꺼번에 정지 // 정지메일 발송횟수 리턴 문제 풀이 function solution(id_list, reports, k) { const r..

[프로그래머스] 로또의 최고 순위와 최저 순위 -JS [내부링크]

문제 설명 0은 어떤 수가 될 수 있다. 문제 풀이 function solution(lottos, win_nums) { let win = [] let answer = [] for(let i =0; i e===0) const maxWins = win.length+zeroNum.length if(win.length ===..

[프로그래머스] 신규 아이디 추천 -JS [내부링크]

문제 설명 문제 풀이 function solution(new_id) { const lowCase = new_id.toLowerCase().split('') const arr = lowCase.filter(e=> /[0-9]/.test(e) || /[a-z]/.test(e) || e==='-' || e==='_' || e==='.') co..

[프로그래머스] 크레인 인형뽑기 -JS [내부링크]

문제 설명 문제 풀이 function solution(board, moves) { let basket = [] let answer = 0 for(let e of moves) { for(let i =0; i < board.length; i++) { let item = board[i][e-1] if(item === 0) continue;..

BEM - CSS [내부링크]

1. BEM이란? Block-Element-Modifier의 구조로 class를 지정하는 것 선택자 특이성을 낮게 유지 직관적으로 CSS의 구조를 파악가능 2. 사용 방법  (1). 기본형식 .block__element--modifier {}  (2). element 다..

[프로그래머스] 소수 만들기 -자바스크립트(JS) [내부링크]

문제 설명 문제 풀이 function isPrime(sum) { for(let i = 2; i < sum; i++) if(sum % i === 0) return false; return sum > 1; } function solution(nums) { let answer = 0 for(let i =0; i < nums.length; i+..

[프로그래머스] 비밀지도 -JS [내부링크]

문제 설명 문제 풀이 function fillZero (arr,length) { arr.map((e,i) => { if(arr[i].length < length) { while(arr[i].length < length) { arr[i] = '0' + arr[i] } } }) } function solution(n, arr1, arr2)..

[프로그래머스] 다트게임 -자바스크립트(JS) [내부링크]

문제 설명 문제 풀이 function solution(dartResult) { let answer = [] let score = 0 for(let i=0;i = 0) { if(dartResult[i] == 1 && dartResult[i+1] == 0) { score = 10 i++ } else { score = dartResult[i]..

[프로그래머스] 실패율 -JS [내부링크]

문제 설명 문제 풀이 function solution(N, stages) { let userNum = stages.length let answer = [] for(let i = 1; i <= N; i++ ) { let userInOneStage = stages.filter((e)=>e===i).length let value = userI..

useReducer -React [내부링크]

1. useReducer란?  -useState로는 관리하기 힘든 방대한 state를 관리할 수 있다. 2. 사용이유?  -효율적인 state의 관리 but 항상 좋은건 아니다. 과할 수 있다.  -여러개의 state를 하나의 객체 안에서 관리..

[프로그래머스] 내적 - JS [내부링크]

문제 설명 문제 풀이 function solution(a, b) { let answer = 0 // a와 b의 같은 순서의 요소를 서로 곱함 => a 배열의 길이만큼 반복 for(let i = 0; i < a.length; i++) { answer += a[i]*b[i] } return answe..

UseEffect -React [내부링크]

1. useEffect 란?  - react의 주요 임무는 화면을 렌더링하고 컴포넌트를 재사용 하는 것  - effect는 side effect라고도 하는데 주요 임무 외에 처리하는 모든 것을 뜻함 ex) Http 리퀘스트  - 특정 값이 변하..

Ref - React [내부링크]

1. Ref란?  - 영어 Reference(참조)의 축약형으로 다른 DOM에 접근 가능하게 해준다.  - 그 값은 Object이고 오브젝트 안에는 current가 존재하고 그 안에 값이 존재한다. 2. 사용이유?  - useState와 비슷한..

Portal -React [내부링크]

1. Portal 이란?  - 컴포넌트를 원하는 위치에 렌더링 할 수 있다. ex) root의 바깥쪽 2. 사용이유?  - 독립적인 위치에서 관리가능 (그러나 원래의 react의 기능 그대로 사용 가능)  - modal 또는 sideBar 등..

[프로그래머스] 키패드 누르기 -JS [내부링크]

문제 설명 문제 풀이 function solution(numbers, hand) { // 배열에 값을 부여 const list ={ 1:[0,0], 2:[0,1], 3:[0,2],4:[1,0],5:[1,1],6:[1,2],7:[2,0], 8:[2,1],9:[2,2],'*':[3,0],0:[3,1],'#':[3,2]} let..

[프로그래머스] 최소 직사각형 -JS [내부링크]

문제 설명 문제 풀이 function solution(sizes) { const rotated = sizes.map(([w,h])=> w > h ? [w,h] : [h,w]) let wArr = [] let hArr = [] rotated.map(([w,h]) => { wArr.push(w) hArr.push(h) }) return Ma..

[프로그래머스] 폰켓몬 -JS [내부링크]

문제 설명 문제 풀이 function solution(nums) { const set = new Set(nums) const arraySet = [...set] if(arraySet.length > nums.length/2 ) { return nums.length/2 } else { return arraySet.length } } 1...

[프로그래머스] 체육복 -JS [내부링크]

문제 설명 문제 풀이 function solution(n, lost, reserve) { const students = new Array(n).fill(1) lost.map(l => students[l-1]--) reserve.map(r => students[r-1]++) students.map((_,i)=> { if(students[i..

[프로그래머스] 모의고사 -JS [내부링크]

문제 설명 문제 풀이 function solution(answers) { const one = [1,2,3,4,5] const two = [2,1,2,3,2,4,2,5] const thr = [3,3,1,1,2,2,4,4,5,5] let arr1 = [] let arr2 = [] let arr3 = [] answers.map((e,i)..

[프로그래머스] 숫자 문자열과 영단어 -JS [내부링크]

문제 설명 문제 풀이 function solution(s) { const arr = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; let answer = [] let word = "" const splited = s.split("") sp..

[프로그래머스] 3진법 뒤집기 -JS [내부링크]

문제 설명 문제 풀이 function solution(n) { const ternary = n.toString(3) return parseInt(ternary.split("").reverse().join(""),3) } 1. toString으로 3진법화 2. 배열로 나눠주고 reverse 3. join으로 합..

[프로그래머스] 두 개 뽑아서 더하기 -JS [내부링크]

문제 설명 문제 풀이 function solution(numbers) { const answer = [] for(let i =0; i < numbers.length; i++) { for(let j =1+i; j < numbers.length; j++) if(!answer.includes(numbers[i]+numbers[j])) { an..

[프로그래머스] 최대공약수와 최소공배수 -JS [내부링크]

문제 설명 문제 풀이 function solution(n, m) { const arr = [] for(let i = 1; i <= m; i++) { if(n%i===0 && m%i===0) { arr.push(i) } if(arr.length > 1) { arr.shift() } } arr.push(arr[0]*n/arr[0]*m/arr..

[프로그래머스] 음양 더하기 -JS [내부링크]

문제 설명 문제 풀이 function solution(absolutes, signs) { const array = absolutes.map(function(e,i) { if(!signs[i]) { return Math.abs(e)*-1 } else { return e } }) return array.reduce((p,c) => p+c)..

[프로그래머스] 약수의 개수와 덧셈 -JS [내부링크]

문제 설명 문제 풀이 function solution(left, right) { let answer = 0 for(let i = left; i <= right; i++) { let array = [] for(let j = 1; j<= i ; j++ ) { if(i % j === 0) { array.push(j) } } array.leng..

[프로그래머스] 같은 숫자는 싫어 -JS [내부링크]

문제 설명 문제 풀이 function solution(arr){ const answer = [] for(let i = 0; i < arr.length; i++) { if(arr[i] !== arr[i+1]) { answer.push(arr[i]) } } return answer } 1. for루프로 arr 내부 요소를 앞..

[프로그래머스] 문자열 내 마음대로 정하기 -JS [내부링크]

문제 설명 문제 풀이 function solution(strings, n) { return strings.sort((a,b) => { if(a[n] > b[n]) return 1; if(a[n] === b[n]) { if(a>b) return 1 if(a 1. sort로 오름차순 정리 2. 값이 같은 경우에는..

[프로그래머스] 예산 -JS [내부링크]

문제 설명 문제 풀이 function solution(d, budget) { let count = 0 let sum = 0 d.sort((a,b) => a-b) for(let i = 0; i < d.length; i++) { count++ sum += d[i] if(sum > budget) { count-- } } return count..

[프로그래머스] 부족한 금액 계산하기 -JS [내부링크]

문제 설명 문제 풀이 function solution(price, money, count) { const array = [] for(let i = 1; i <= count; i++) { array.push(price * i) } const arraySum = array.reduce((p,c) => p + c) return money >..

[프로그래머스] 나머지가 1이 되는 수 찾기 -JS [내부링크]

문제 설명 문제 풀이 function solution(n) { for(let i = 1; i < n; i++) { if(n%i === 1) { return i } } } 1. for 루프로 n의 수까지 나눠서 나머지가 1이되는 수 리턴 개선 사항

[프로그래머스] 나누어 떨어지는 숫자 배열 -JS [내부링크]

문제 설명 문제 풀이 function solution(arr, divisor) { const answer = [] for(let i = 0; i < arr.length; i++) { if(arr[i]%divisor===0) { answer.push(arr[i]) } } if(answer.length === 0) { answer.push(..

[프로그래머스] 문자열 내 p와 y의 개수 -JS [내부링크]

문제 설명 문제 풀이 function solution(s){ const arr = s.toLowerCase().split("") let answer let p = [] let y = [] for(let i = 0; i < arr.length; i++) { if(arr[i] === "p") { p.push("p") } else if (ar..

[프로그래머스] 서울에서 김서방 찾기 -JS [내부링크]

문제 설명 문제 풀이 function solution(seoul) { const index = seoul.indexOf("Kim") return `김서방은 ${index}에 있다` } 1. Kim의 위치 찾기 2. ``이용하여 리턴 개선 사항

[프로그래머스] 소수 찾기 -JS [내부링크]

문제 설명 문제 풀이 function solution(n) { const array = Array(n+1).fill(true).fill(false,0,2) const answer = [] for(let i = 2; i <= n; i++) { if(array[i]) { for(let j = i*i; j<= n; j+=i) { array[j..

[프로그래머스] 시저 암호 -JS [내부링크]

문제 설명 문제 풀이 function solution(s, n) { const upAlphaInner = Array.from(Array(26)).map((t,i) => i + 65) const loAlphaInner = Array.from(Array(26)).map((t,i) => i + 97) const upAlphabet = upAl..

[프로그래머스] 약수의 합 - JS [내부링크]

문제 설명 문제 풀이 function solution(n) { let result = 0 for(let i = 1; i <= n; i++) { if(n%i === 0) { result += i } } return result } 1. i는 나눠주는 수이므로 for루프를 이용해 최댓값n까지 반복 2...

[프로그래머스] 이상한 문자 만들기 -JS [내부링크]

문제 설명 문제 풀이 function solution(s) { const word = s.split(" ") const result = [] for(let i = 0; i < word.length; i++) { result.push(word[i].split("").map((t,j) => j%2 ? t.toLowerCase() : t.to..

[프로그래머스] 행렬의 덧셈 - JS [내부링크]

문제 설명 문제 풀이 function solution(arr1, arr2) { let answer = [] for(let i = 0; i < arr1.length; i++) { let array = [] for(let j = 0; j < arr1[i].length ; j++ ) { array.push(arr1[i][j]+arr2[i][j..

[프로그래머스] 직사각형 별찍기 -JS [내부링크]

문제 설명 문제 풀이 process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); const line = "*".repeat(a) for(let i =..

class - Constructor, extends 와 super [내부링크]

1. class를 사용하는 이유?  - class를 사용하면 class 중괄호 속에서 일반 생성자 함수보다 더 쉽게 method 관리 가능  - class를 사용하지 않으면 일반 생성자 함수를 사용할 때 prototype안에 일일이 만든 m..

API 와 AJAX [내부링크]

api = 다른 곳의 데이터를 구하기 위한 통로 api에 데이터 전송 => 원하는 데이터를 얻음 api는 대부분 json // 소수 XML(구식) 1. json의 형식 무조건 "" // (not '') {"asd" = "ddd"} 2. json.value의 종류 obje..

비동기식 함수 Promise/Async /Await [내부링크]

1. 들어가기 이전 - 자바스크립트는 single thread  *single thread = 한번에 한줄씩 코드가 실행됨 - 컴퓨터는 stack구조로써 콜백함수를 중첩적으로 이용하면 성능이 저하되어 UX에 좋지 않다.  *stack = 값의..

[프로그래머스] 하샤드의 수 - JS [내부링크]

문제 설명 문제 풀이 function solution(x) { let arr = Array.from(`${x}`).map(Number) let total = 0 for(element of arr) { total = total += element } return x % total ? false : true } 1.from으로 배열..

[프로그래머스] 콜라츠 추측 -JS [내부링크]

문제 설명 문제 풀이 function solution(num) { let attempt = 0 while (num !== 1) { if(attempt === 500) { return -1 } num = num % 2 ? num*3+1 : num/2 attempt++ } return attempt } 1. while loop 이용하..

for...of loop [내부링크]

1. for..of의 기본형식 for (변수지정 of iterable*) { } <배열 안의 구성요소들을 변수로 선언하여 참조가능> *iterable : 한 개의 데이터가 여러가지의 구성요소를 가지는 경우 참고) for loop의 기본 형식 for..

[프로그래머스] 자릿수 더하기 -JS [내부링크]

문제 설명 문제 풀이 function solution(n){ arrayN = Array.from(`${n}`).map(Number) return arrayN.reduce((prev,curr) => prev+curr) } 1. from()으로 배열화 2. map(Number)로 숫자화 3. reduce()로 전체의..

[프로그래머스] 자연수 뒤집어 배열로 만들기 -JS [내부링크]

문제 설명 문제 풀이 function solution(n) { return (Array.from(`${n}`).reverse().map(Number)) } 1. from()으로 배열화 2. reverse()로 역순 3. map(Number)로 문자화 되었던 숫자를 다시 일괄적으로 숫자로..

[프로그래머스] 정수 내림차순으로 배치하기 -JS [내부링크]

문제 설명 문제 풀이 function solution(n) { let sortedNum = Array.from(`${n}`).sort().reverse().join("") return parseInt(sortedNum) } 1. Array.from()으로 숫자의 배열화 // 그냥 n인자를 사용하면 ["n"]..

[프로그래머스] 정수 제곱근 판별 -JS [내부링크]

문제 설명 문제 풀이 function solution(n) { let testNum = Math.pow(n,0.5) return Number.isInteger(testNum) ? Math.pow(testNum+1,2) : -1 } 1. Math.pow(n,0.5) = n의 0.5 제곱를 하여 n의 제곱근 추출 2...

[프로그래머스] x만큼 간격이 있는 n개의 숫자 -JS [내부링크]

문제 설명 문제 풀이 function solution(x, n) { let answer = [] for(let i = 1 ; i <= n; i++) { answer.push(x*i) } return answer } 1. n = answer.length 2. x의 배수를 for 루프 이용하여 빈 배열 answer에..

[프로그래머스] 수박수박수박수박수박수? -JS [내부링크]

문제 설명 문제 풀이 function solution(n) { return n%2 ? "수박".repeat((n-1)/2) + "수" : "수박".repeat(n/2) } 1. n%2 = 1은 True / 0은 False 2.(n-1/2) X => ((n-1)/2) O 괄호 주의 개선 사항

[프로그래머스] 제일 작은 수 제거하기 -JS [내부링크]

문제 설명 문제 풀이 function solution(arr) { let popNum = Math.min(...arr) let popNumIndex = arr.indexOf(popNum) arr.splice(popNumIndex,1) if(arr.length === 0) { return [-1] } else { return arr } }..

Method - splice, sort [내부링크]

// splice(start,deleteCount,elementIntoArray1....) const array = ["월", "화", "수", "목", "금", "토", "일"]; const weekend = array.splice(5, 2); // weekend = 토,일 / array = 월,화,수,목,금,토 array...

[프로그래머스] 핸드폰 번호 가리기 -JS [내부링크]

문제 설명 문제 풀이 function solution(phone_number) { let hideNum = phone_number.slice(0,phone_number.length-4) let remainNum = phone_number.slice(hideNum.length) return "*".repeat(hideNum.length)..

[프로그래머스] 문자열 다루기 기본 -JS [내부링크]

문제 설명 문제 풀이 function solution(s) { if((s.length === 4 || s.length === 6) && s == parseInt(s)) { return true } else { return false } } parseInt("a234") = NaN 이다. 그렇기 때문에 "a234" =X Na..

Comparison Operator [내부링크]

'==' => type불문 동일시 true '===' => type까지 동일시 true ex) 1 == "1" //true 1 === "1" //false 0 == false //true 0 === false //false '!=' => type 불문 '!==' => type 동일 ex) 1 != "1" // false 1..

Method - indexOf/slice/replace/repeat/Math [내부링크]

// 매서드 thing.method(arg) argument = 인수 let msg = " Hello, World"; const whisper = message.toLowerCase().trim(); // indexOf() msg = "Hello, World"; msg.indexOf("Hello"); // 0 msg.indexOf("o"); /..