반응형

FE 309

프로그래머스- 신규 아이디 추천 (정규식)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 풀이 코드 function solution(new_id) { const answer = new_id .toLowerCase() // 1 .replace(/[^\w-_.]/g, '') // 2 .replace(/\.+/g, '.') // 3 .replace(/^\.|\.$/g, '') // 4 .replace(/^$/,..

삽입 정렬 알고리즘

삽입정렬 - 각 숫자를 적절한 위치에 삽입하는 방법 - 필요한 때만 위치를 바꾼다. (선택 정렬과 버블정렬보다 더 빠름) - 시간 복잡도 O(N^2)- 기본적으로 i이전의 값들이 정렬이 되어있다고 가정- 특정한 경우에는 굉장히 빠르게 작동   - 거의 정렬된 상태에 한해서는 어떤 알고리즘보다 빠름 정리) 시간복잡도 O(N^2)를 가지는 정렬 알고리즘 : 선택 정렬, 버블 정렬, 삽입 정렬  내가 작성한 코드 function insertSort(arr){ for(let i=1; i value){ let temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; j-- }..

프로그래머스:주사휘 고르기 - javascript(조합, 백트래킹, 구현)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/258709 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 정답 풀이 코드 function solution(dice) { const len = dice.length; const groupSize = len / 2; const dices = new Array(len).fill(0).map((_,index)=>index+1) // A가 뽑을 조합의 경우를 구하는 함수 const getCombinati..

버블 정렬 알고리즘

현재 값과 다음값을 비교해서 더 큰 값을 뒤로 배치한다. => 이 과정을 반복하다 보면  가장 큰 값인 5가 맨 뒤로 가게 됐다. 이 과정을 반복해보자가장 큰 값인 4가 맨 뒤로 가게 됐다. 이 과정을 반복해보자.  이 쯤 눈치를 챘는가? 배열 전체를 통해 숫자를 비교하는 횟수가 점점 줄어들고 있다. 이유) - 한번 배열 훑는 과정거칠 때마다 가장 큰 값이 맨 뒤에 고정된다. => 그러니, 그 숫자 이전까지만 배열을 훑어주면 된다.  특징 - 시간 복잡도는 O(N^2)- 선택 정렬 알고리즘도 시간 복잡도는 O(N^2)이지만, 버블 정렬 알고리즘 수행시간이 더 오래 걸린다. => 이유: 버블 정렬은 매 순간 숫자들의 위치를 이동시키기 때문이다. 선택 정렬은 전체 배열 훑은 다음에 가장 작은 값을 맨 앞에 ..

프로그래머스: 매칭 점수 - javascript (정규식 끝끝판왕...)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42893 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 01. /[\d|\W]/- [] : 문자 클래스를 정의 . 문자 클래스는 대괄호 안에 있는 문자들 중 하나와 일치하는지 검사- \d : 숫자를 의미. [0-9]와 동일하게 작동, 숫자 하나와 일치. - | : 또는 을 의미하는 논리 연산자 인데, 문자 클래스 내에서 사용되었기 때문에 단순히 문자 '|' 자체로 간주됨. - \W: 비문자 (숫자, 영문자, 밑줄이 아닌 문자)...

[Error]이 Promise<any>는 항상 정의되어 있으므로 이 조건은 항상 true를 반환합니다.

1. [의도]사용자의 로그인 상태를 관리해야한다. => "마이페이지 접근 권한", "리뷰 댓글 권한", "navbar의 로그인, 로그아웃 버튼" 시에 필요함.  1. 백엔드 api를 활용해서 현재 사용자가 로그인 상태인지, 아닌지 확인할 수 있다. 2. 사용자의 로그인 상태를 매번 서버의 응답으로 판단 하기엔 부담이다. 3. 사용자가 로그인, 로그아웃 할 때만 서버에 요청을 한 응답 값으로 사용자의 로그인 상태를 변경한다.  장점: redux toolkit 상태 관리를 통해 서버 통신 없이, 해당 상태값에 여러번 접근할 수 있다.   2. [문제 상황] 3. [문제 코드] useEffect(() => { let res = checkLogin();//사용자의 로그인 상태 확인하는 함수 if ..

프로그래머스: 산 모양 타일링 - javascript(dp)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 정답 풀이 코드 function solution(n, tops) { const MOD = 10007; const dp = new Array(n + 1).fill().map(() => new Array(2).fill(0)); dp[0][0] = 1; for (let i = 0; i Only 풀이 코드 function solution(n, tops) { const M..

프로그래머스: [1차] 추석 트래픽- javascript(시간함수, 구간 최대값)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/17676 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 1. 주어진 시간을 밀리초로 변환한다 2. 변환한 시간으로 시작 시간을 구한다. 3. 시작 시간은 START로, 끝난 시간은 END로 배열에 넣는다. (이때 끝난 시간에 +1000 밀리 세컨즈 시간을 더해야 한다.) 4. 시간을 기준으로 오름차순 정렬을 한다. 5. let count = 0 으로 설정한 뒤, 'START'가 나오면 count+1, 'END'가 나오면 coun..

프로그래머스:코딩테스트 공부 - javascript(dp)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 DP를 활용하는 문제이다.  DP 배열 dp[i][j] : (알고력 i, 코딩력 j) 상태에 도달하는 데 필요한 최단 시간 DP 배열 업데이트 알고리즘을 공부하여 알고력을 1 높이는 경우:dp[i+1][j] = min(dp[i+1][j], dp[i][j]+1)코딩을 공부하여 코딩력을 1 높이는 경우:dp[i][j+1] = min(dp[i][j+1], dp[i][j]+1)문..

선택 정렬 알고리즘

선택 정렬 알고리즘 - 정렬 알고리즘 중 하나. - 배열을 반복적으로 순회하여 가장 작은(혹은 가장 큰) 요소를 찾아 맨 앞의 요소와 교환하는 방식으로 정렬합니다. 선택 정렬 알고리즘 설명첫 번째 위치에 대해:배열에서 가장 작은 요소를 찾아 첫 번째 요소와 교환합니다.두 번째 위치에 대해:첫 번째 요소를 제외한 나머지 배열에서 가장 작은 요소를 찾아 두 번째 요소와 교환합니다.이 과정을 마지막까지 반복:배열 전체가 정렬될 때까지 이 과정을 반복합니다.  선택 정렬 알고리즘 구현 function selectSort(arr){ for(let i=0; i arr[j]){ min = j; } } let temp = arr[i]; ..

반응형