일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 맨하탄 거리
- interpolation search
- android
- 유클리드 거리
- list
- 연결리스트
- LinkedList
- 수식트리
- 스택
- 약수의 총 합
- 알고리즘 성능분석
- 자료구조
- java 정규표현식
- Java
- 유클리디안 거리
- 정렬
- 단체사진 찍기
- 빅-오
- 알고리즘
- level2
- 프로그래머스
- 양방향 연결 리스트
- 보간 탐색
- 탐욕법
- 큐
- 그리디
- 순열
- space complexity
- visited
- 순차 리스트
- Today
- Total
목록전체 글 (42)
개발자로 살아남기

이전 글에서 Cursor를 활용하는 방법을 간단하게 알아보았는데 이번에는 "반복적인 작업 자동화" 부분에 좀 더 초점을 맞춰 테스트해볼 것이다.디자인시스템 자동화디자인시스템에는 폰트, 아이콘, 색상 등 여러가지 리소스가 존재한다. 그러나 이런 것들을 개발자가 하나하나 다운로드 받거나 설정하는 작업은 상당히 번거롭다. 그래서 이번에는 이런 번거로운 작업들을 Figma MCP와 Project Rule을 활용해서 규칙 한 번에 다운로드 및 설정이 가능한지 테스트해볼 예정이다.테스트하기 전 두 가지 사전 작업이 필요하다.Figma MCP 설정 (Local 환경으로 구축) -> 2025년 4월 22일 수정 완료됨 (링크)SVG to Vector MCP 구현Figma MCP 설정 (Local 환경으로 구축)더보기2..

Cursor IDE?AI를 활용해 좀 더 생산성 있게 코딩할 수 있도록 도와주는 VSCode 기반의 도구처음 가입 시 Trial로 Pro 기능을 14일간 사용 가능 (Pro 버전은 2025년 4월 기준 달마다 20$)가격 정보: https://www.cursor.com/pricing공식 사이트: https://www.cursor.com/공식 문서: https://docs.cursor.com/get-started/welcome어떻게 생산성을 높일 수 있을까?뒤에서 살펴보겠지만 아래와 같이 생산성을 높일 수 있을 것이라고 판단했다.MCP를 활용해 Figma의 디자인을 가져와 구현기존 프로젝트에 참여해야 할 경우 빠르게 프로젝트 구조 파악 가능반복적인 작업 자동화특정 기능이 있는 코드를 찾는 등의 작업 처리 ..

CI/CD 새로운 코드를 통합함으로써 개발/운영에서 발생할 수 있는 문제를 해결하기 위한 솔루션 CI (Continuous Integration) 지속적인 통합을 의미 빌드/테스트를 자동화 특정 조건(push, pr 등)에 의해 빌드 및 테스트가 진행됨 CD (Continuous Delivery / Continuous Deployment) 지속적인 서비스/지속적인 배포를 의미 지속적인 서비스 변경된 코드들이 빌드 및 테스트를 거쳐 Repository에 업로드되는 것 지속적인 배포 변경된 코드들이 빌드 및 테스트를 거쳐 Repository에 업로드되고 실제 사용자에게 제공되는 프로덕션까지 배포되는 것 https://www.redhat.com/ko/topics/devops/what-is-ci-cd 준비 아래..

이진 탐색 트리 (Binary Search Tree, BST) 이진 탐색 트리 (Binary Search Tree, BST) 이진 트리의 일종 데이터를 트리에 저장하는 규칙에 따라야 함 노드에 저장된 키 값은 유일해야 함 왼쪽 자식 노드 키 > 부모 노드 키 > 오른쪽 노드 키 삽입할 데이터가 부모 노드보다 작으면 왼쪽, 크면 오른쪽에 삽입 왼쪽과 오른쪽의 서브 트리도 이진 탐색 트리 이진 탐색 트리 구현 방법 삽입 부모 노드와 삽입할 데이터를 비교해서 삽입할 데이터가 더 크면 오른쪽에 추가하고, 더 작으면 왼쪽에 추가한다. 단, 비교할 대상이 없을때까지 내려가야 한다. 탐색 삽입과 마찬가지로 찾고자하는 데이터가 부모 노드보다 작으면 왼쪽, 크다면 오른쪽으로 탐색한다. 단, 탐색 도중 데이터를 찾았거나 ..

보간 탐색 (Interpolation Search) 보간 탐색 (Interpolation Search) 균일하게 n개의 데이터가 분포되어 정렬된 배열이 있을 경우 이진 탐색보다 성능이 좋음 ex) 10, 12, 13, 15, 18, 22, 25, 26, 27, 30, ... => 성능 ↑ 10, 102, 192, 375, 462, 1777, ... => 성능 ↓ 이진 탐색은 탐색 대상의 값과 상관없이 무조건 절반씩 잘라서 비교하지만, 보간 탐색은 탐색 대상이 앞쪽에 있을 경우 앞쪽부터 탐색을 진행 선형 보간법을 이용해 탐색 위치를 결정함 보간 탐색 방법 탐색을 시작할 위치를 공식을 통해 알아낸다. 해당 위치에 탐색 대상이 있을 경우 해당 위치 값을 반환한다. 해당 위치의 값이 탐색 대상보다 작으면 탐색 ..

기수 정렬 (Radix Sort) 기수 정렬 (Radix Sort) 비교 연산이 없는 정렬 알고리즘 적용할 수 있는 범위가 제한적임 - 정수, 알파벳, 특수문자 등의 아스키로 표현할 수 있는 것들 - 소수는 불가능 기수 (Radix)를 이용한 정렬 - 2진수의 경우 : 0, 1 / 10진수의 경우 : 0 ~ 9 / 알파벳 소문자의 경우 : a ~ z (0 ~ 25) 기수만큼의 추가 저장 공간이 필요함 - 저장 공간을 버킷 (Bucket) 이라고 부름 Queue를 이용한 정렬 알고리즘 LSD (Least Significant Digit) 정렬 방법과 MSD (Most Significant Digit) 정렬 방법이 있음 - LSD : 덜 중요한 첫번째 자리수부터 정렬 (즉, 가장 작은 자리수) ex) 123..

퀵정렬 (Quick Sort) 퀵정렬 (Quick Sort) 분할정복 (divide and conquer) 알고리즘 중 하나 피벗(pivot)이라는 것을 이용해 정렬 피벗 : 데이터 리스트에서 하나를 고르는 것 불안정 정렬 (unstable sort) - 같은 데이터끼리의 순서가 보장되지 않음 ex) 5(A), 5(B), 3, 2, 1 => 1, 2, 3, 5(B), 5(A) nlog2(n) 알고리즘들 중 평균적으로 가장 빠름 제자리 정렬 (in-place sort) - 데이터 크기만큼의 저장공간을 제외하고 추가적인 공간이 필요하지 않음 퀵정렬 방법 데이터들 중 하나를 골라 피벗으로 설정 데이터 리스트의 앞과 뒤에서 탐색하며 피벗보다 작은 값들은 앞에 오고 피벗보다 큰 값들은 뒤로 가도록 분할 분할된 리..

힙 정렬 (Heap Sort) 힙 정렬 (Heap Sort) 최대힙 트리나 최소힙 트리를 구성해 정렬하는 방법 내림차순 정렬은 최대힙으로 구성 오름차순 정렬은 최소힙으로 구성 힙 관련 내용 참고 (https://banjjak1.tistory.com/45) 힙 정렬 방법 내림차순일 경우 데이터를 최대힙으로 구성하고 오름차순일 경우 최소힙으로 구성 최대힙의 경우 루트노드는 해당 트리에서 항상 최대값을 가지고 있으므로 힙 구성 후 삭제를 반복하면 다음 최대값이 루트노드가 되어 결국 내림차순 정렬이 됨 성능 시간복잡도 최악의 경우 : n log2(n) 최선의 경우 : n log2(n) : 데이터 저장 및 삭제의 시간복잡도 log2(n) : 정렬할 데이터가 n개인 경우 n개의 데이터를 저장 및 삭제해야 하므로 n..