분류 전체보기 167

input range 커스텀

input range를 커스텀 하려고 한다.인풋 버튼이 인풋 밖으로 튀어나오지 않으면 css만으로도 가능하지만여차저차해서 테스트로 만들어봤다. 이미지 보통  .range_fill 인풋 색깔 채워주기 위해 만들었다. .state_image { transition: .2s all; background: salmon; width: 40px; height: 40px; text-indent: 100%; white-space: nowrap; overflow: hidden;}.emotion_state.bad .state_image {background: skyblue;}.emotion_state.good .state_i..

언어/JavaScript 2024.06.24

[알고리즘] 동적계획법

피보나치 수열: 첫째, 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열 동적계획법이란?: 복잡한 문제를 간단한 여러 개의 하위 문제로 나누어 푸는 방법이 때, 하위 문제의 답을 저장하여 중복 연산을 하지 않음. 동적계획법 문제의 특성중복되는 부분문제 : 작은 하위 문제들이 중복되어 나타난다.최적 부분 구조 : 최적해는 부분 문제의 최적해로부터 구할 수 있다. 시간 복잡도간단한 재귀호출 : 계산하는 양이 대략 2배씩 늘어남. 계산양이 많아지면 느려짐동적계획법: 각 항들은 딱 1번씩만 계산이 됨. n번째 항을 구하기 위해선 n만큼만 시간을 들이면 됨. 공간 복잡도: 하위 문제들의 답을 저장해놓기 때문에 하위 문제의 수만큼 저장공간 필요 동적계획법을 구현하는 테크닉         점화식   ..

자료구조 2024.05.07

[코딩테스트] OX퀴즈

📌 내 코드function solution(quiz) { let result = [] quiz.forEach((item) => { const parts = item.split("=") const func = new Function('return ' + parts[0]); result.push(func() === parseInt(parts[1]) ? "O" : "X") }) return result}- =을 기준으로 계산식과 값을 나누어서 값이 맞는지 비교를 했다.- 처음엔 문자열 계산식을 사용할 수 있는 eval() 을 사용했는데 여러 이유로 위험한 함수여서 사용하지 않고 대신 new Function()을 사용하여 계산식을 계산했다.  📌 다..

코딩테스트 2024.05.04

[알고리즘] 재귀호출

알고리즘이란?: 계산을 통하여 해결할 수 있는 문제를 해결하는 방법  알고리즘 특징유한성명확성입력출력효과성 재귀호출이란?: 함수가 자기 자신을 호출 수학적 귀납법 = 재귀적 증명법: 명제 P(n)을 다음과 같이 증명하는 방법N = 1일 때 성립함을 보인다.P(k)가 성립한다고 가정할 때, P(k+1)이 성립함을 보인다.따라서 모든 자연수 n에 대하여 P(n)이 성립한다.예시) 퀵정렬: 재귀호출을 이용한 대표적인 정렬예시) 4를 기준으로 작은수는 왼쪽 큰수는 오른쪽  재귀함수 디자인재귀함수를디자인 하기 위한 세가지 단계함수의 정의를 명확히 한다.기저 조건에서 함수가 제대로 동작하게 작성한다.함수가 작은 input에 대하여 제대로 동작한다고 가정하고 함수를 완성한다.

자료구조 2024.04.25

[코딩테스트] 숨어있는 숫자의 덧셈 (2)

문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.  📌 내 코드function solution(my_string) { const number = my_string.replace(/[^0-9]/g, " "); const arr = number.split(' ').map(Number); const result = arr.reduce((prev, cur) => { return prev + cur; }, 0) return result;}- 문자열에서 숫자만 추출하고, 숫자 배열로 만들..

코딩테스트 2024.04.24

[코딩테스트] 합성수 찾기

문제 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. 입출력 예 #1 10 이하 합성수는 4, 6, 8, 9, 10 로 5개입니다. 따라서 5를 return합니다. 입출력 예 #2 15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15 로 8개입니다. 따라서 8을 return합니다. 📌 내 코드 function solution(n) { let result = []; for (let i = 4; i

코딩테스트 2024.04.18

[자료구조] 8일차 우선순위 큐의 방법과 힙

우선순위 큐란? : 출력 연산 시 가장 우선순위가 높은 원소를 출력한다. 📌 단순하게 생각해보기 ❗ 높은 숫자가 우선순위라고 가정함. = 출력값의 빈자리는 당겨짐 📌 우선순위 큐를 단순한 접근 방법으로 구현한 경우 - 입력 : O(1) - 출력 : O(n) 우선순위가 가장 높은 원소를 찾는 과정과, 원소 제거가 비효율적임. 힙 : 최솟값 또는 최댓값을 빠르게 찾기 위해 고안된 완전 이진 트리 최대 힙 : 부모 노드는 항상 자식 노드보다 큰 값을 갖고 있음. 최소 힙 : 부모 노드는 항상 자식 노드보다 작은 값을 갖고 있음. import heapq 파이썬의 heapq 모듈로 최소 힙 사용 📌 최대 값이 필요한 경우 값을 저장할 때 -1을 곱한 값을 저장하면 됨. -1을 곱함으로서 최댓값과 최솝값이 반전된다..

자료구조 2024.04.18