일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스 데브코스 프론트엔드 TIL
- 리팩토링 회고
- 백준 node.js
- Vue3
- react 프로젝트 리팩토링
- 모던 자바스크립트 Deep Dive TIL
- useRef 지역 변수
- Frontend Roadmap
- KDT 프로그래머스
- 모던 javascript Deep Dive
- 투포인터알고리즘 js
- 프로그래머스 데브코스
- 모던 자바스크립트 Deep Dive
- 인프런 자바스크립트 알고리즘 문제풀이
- 머쓱이
- 모던 자바스크립트 딥다이브
- 개발자 특강
- Vue3 Router
- 프로그래머스 K_Digital Training 프론트엔드
- K_Digital Training
- frontend roadmap study
- 모던 자바스크립트 TIL
- 프로그래머스 K_Digital Training
- KDT 프로그래머스 데브코스 프론트엔드
- 백준 js
- 프로그래머스 데브코스 프론트엔드
- 우테캠 회고록
- useEffect return
- TypeScript 문법 소개
- react customHook 예시
- Today
- Total
목록알고리즘_JS/프로그래머스_Level1 (52)
프론트엔드 개발자의 기록 공간
프로그래머스 Level1 완주하지 못한 선수 문제 문제 풀이 : 참가자 명단(participant)과 완주자 명단(completion)을 비교하여 완주하지 못한 선수가 누구인지만 찾으면 되는 문제이다. * 참가자중 동명이인이 있을 수 있다는 조건이 약간 까다로웠다. 처음에는 참가자 명단 for문을 돌면서 indexOf나 includes로 완주자 포함여부를 찾은뒤, 해결하는 로직으로 작성하였다. 제출을 하니 효율성 검사에서 시간초과 문제가 발생하였다. 즉, 이 문제는 시간복잡도도 고려해줘야하는 문제이다. for문안에 indexOf를 사용했기에 O(n^2)의 복잡도를 가진다. 해결하기 위해서는 O(nlogN)이나 O(n)으로 해결해주어야한다. * 다른 사람의 풀이를 보면 sort로 이용하여 푼 방법도있지만,..
프로그래머스 Level1 신규 아이디 추천 문제 문제 풀이 : 친절하게 단계별로 풀으라고 작성이 되어있다. 보면 알듯이 정규표현식을 사용하면 쉽게 해결이 가능한 문제이다. 정규표현식 작성법을 찾아보며 풀었다. 코드 설명 : 1단계 : toLowerCase() 함수를 이용하여 소문자로 치환해줍니다. 2단계 : replace를 이용하여 문자열을으로 치환해줍니다. 치환을 해줘야하는 문자는 조건에서 주어진 문자를 제외한 문자이다. []의미는 []안에 포함된 정규표현식과 일치하면 "" 빈문자열로 치환하면서 없애준다. []안에 ^의 의미는 해당 문자를 제외한다는 것이다. 즉, a~z0~9-_. 가 포함되는 문자열을 제외한 문자열을 /g 을 이용하여 문자열 전체에 대해 해당 정규표현식을 제외한 문자를 찾아 "" 로 ..
프로그래머스 Level1 소수 만들기 문제 문제 풀이 : 주어진 배열의 요소에서 3개를 선택하여 만든 조합으로 소수 판별을 통해 몇개의 소수가 만들어지는지 구하는 문제이다. 처음에 주어진 숫자중에 조합해서 3개를 만드는 경우의 수를 구해야 될거 같아서 수학의 "조합" 공식을 사용했다. 하지만 풀이 과정에서 그럴 필요가 없는것을 깨닫고 다시 풀었다. 문제의 예 nums[1,2,3,4] 에서 3개를 뽑을때 가능한 경우는 수는 4가지 경우이다. [1,2,3], [1,2,4], [1,3,4], [2,3,4] 여기서 패턴을 찾으면된다. 배열의 길이를 n이라했을때, 0~n-2를 첫번째 인덱스, 1~n-1를 두번째 인덱스, 2~n를 세번째 인덱스로 지정하여 삼중 반복문을 돌리게되면 중복을 제외한 모든 경우의 수를 구..
프로그래머스 Level1 내적 문제 문제 풀이 : 따로 설명할 것도 없이 매우 간단한 문제이다. 흔히 알고있는 for문으로 해결했다가 다른 문제풀이를 보았는데 reduce 함수를 이용하여 푼 풀이를 보고 처음으로 reduce함수에 대해 공부해보았다. 시간복잡도는 O(n)을 가진다. MDN Web Docs문서에 따르면 "reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다." 라고 정의 되어있다. 리듀서 함수는 네 개의 인자를 가집니다. 누산기accumulator (acc) 현재 값 (cur) 현재 인덱스 (idx) 원본 배열 (src) 리듀서 함수의 반환 값은 누산기에 할당되고, 누산기는 순회 중 유지되므로 결국 최종 결과는 하나의 값..