반응형

전체 글 307

프로그래머스:주사휘 고르기 - 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]; ..

프로그래머스: 표 병합 - javascript(Union-Find)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/150366 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 이 문제는 명령어에 따라 51x51 크기의 셀 값을 업데이트하거나 병합하는 작업을 수행하는 것입니다.각 셀의 부모 좌표를 저장하여 병합된 셀들을 추적하고, 부모 좌표가 동일한 셀들은 같은 값으로 업데이트됩니다. 문제는 유니온-파인드 (Union-Find) 알고리즘을 사용하여 해결됩니다.: 유니온-파인드 알고리즘은 집합의 합병(Union)과 특정 원소가 속한 집합의 대표 원..

프로그래머스 : 표 병합의 "실수축제" - javascript (배열 객체 참조, 타입비교)

내가 왜 그동안 코테 시험중에 "어? 이게 왜 에러가 나지?" "왜 작동을 안하지?"의문이 들었던 이유를 알게됐다. (네이버 부캠을 통해...)  내가 문제를 푸는동안 js 틀린 문법을 썼었던 것이다. 교묘 ~ 해서 나 스스로도 모르게...  아이러니하게도 "내가 쓰는 틀린 문법을 뭐가 있을까?" 알려고 하면, 코테 준비를 하는 과정에서 내가 끈질기게 해당 문제를 몇시간이고 풀어야 한다. 그 속에서 마주하는 에러들... 그 에러들을 해결하면서  js의 문법을 자세히 알게된다.  오늘은 해당 문제를 풀면서 실수 축제를 정리해보자. 목차는 이렇다.  01. 배열의 객체참조 02. Set 객체에 대해서 03. number 타입과 string 타입에 비교에 대해서 04. 배열의 요소 접근법  01. 배열의 객체..

반응형