일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 리터럴 타입
- 인터섹션
- 무한 스크롤
- app router
- recoil
- CI/CD
- CORS
- TS
- 투포인터
- React
- 태그된 유니온
- ESlint
- 타입 좁히기
- SSR
- useAppDispatch
- RTK Query
- 호이스팅
- map
- 결정 알고리즘
- tailwind
- dfs
- webpack
- 공변성
- 반공변성
- Cypress
- Jest
- Promise
- 이분 검색
- async/await
- autosize
- Today
- Total
목록코딩테스트 with JS (49)
짧은코딩
해결법 사실 해결법은 간단하다. 하지만 난 일일히 비교해서 풀었다. 강사님 풀이에서는 A가 이기는 기준을 다 나열하고 아닌 경우 B 가 이긴 경우로 했다. 내 풀이 하나하나 다 경우의 수를 생각했다. 강사님 풀이 우선 비기는 경우와 A가 이기는 경우를 두고 else로 B가 이기는 경우를 했다.
indexOf let s = "abcabc" console.log(s.indexOf('a')); //0 a가 0번째 위치에 있어서 0이 나온다. 즉 indexOf는 원하는 문자를 문자열 중에서 가장 처음 위치에 있는 문자의 인덱스 번호를 찾아준다. let s = "abcabc" console.log(s.indexOf('a', 1)); //3 이렇게 두번째 매개변수도 넣어주면 그 숫자 이후부터 있는 문자를 찾아준다. 만약 찾는 숫자가 없으면 -1을 반환한다. 해결법 indexOf를 이용해서 문제를 풀면된다. for문을 돌리면서 문자 하나하나를 확인하는데 만약 중복되는 문자가 있다면 indexOf를 했을 때 자기의 인덱스 번호와 다를 것이다. 코드
substr() substr() 함수는 s.substr(start, length) 이렇게 하면 start부터 length 만큼 잘라서 반환해준다. const s = "abcdef"; console.log(s.substr(1, 3)); //bcd 이렇게 출력이 된다. substring() s.substring(start, end) 이렇게 사용한다. substring()는 시작 인덱스 번호부터 마지막 인덱스 번호를 가져와준다. const s = "abcdef"; console.log(s.substring(1, 3)); //bc 이렇게 출력이 된다. slice() substring() 함수와 사용법이 같다. s.slice(start, end) 이렇게 하면 된다. const s = "abcdef"; consol..
해결법 문자를 for문으로 확인하면서 현재 문자와 현재 문자를 toUpperCase를 사용한 것과 비교해서 같으면 카운트를 올려주면 된다. 코드
해결법 t를 기준으로 split로 나눈다. 그러면 나눈 집합이 나오는데 그 개수에서 -1 한 것이 답이다. 만약 특정 문자열이 중복되어 있거나 마지막에 있더라도 집합에 '' 값이 들어가기 때문에 length를 구해서 -1을 하면 된다. 코드
해결법 이 문제에서는 for문도 사용 가능하다. 하지만 정규표현식으로 푼다면 더 효율적으로 풀 수 있다. replace(/A/, '#') 이렇게 한다면 전체 중에서 하나의 A만 바꿔준다. 따라서 replace(/A/g, '#') 이렇게 해야 전역적으로 A를 다 찾아서 바꿔준다. 코드
해결법 이 문제에서 난쟁이가 아닌 2명을 찾기 위해서는 일일히 다 찾아봐야 한다. 따라서 처음 배열의 모든 합을 구하고 다른 난쟁이를 찾기 위해서 이중 for문을 사용한다. 그리고 2개씩 고르면서 미리 구해놨던 합에서 for문에서 찾은 2개의 값을 빼서 100이되면 정답이다. 코드 splice를 사용하면 배열에서 값을 제거할 수 있다. 그리고 뒤에꺼부터 제거해야 인덱스 번호에 영향을 안준다.
Math.ceil() Math.ceil(.95); // 1 Math.ceil(4); // 4 Math.ceil(7.004); // 8 Math.ceil(-0.95); // -0 Math.ceil(-4); // -4 Math.ceil(-7.004); // -7 무조건 올림해준다. for문 -범위로 구하기 for (let i = 1; i