728x90
728x90
크루스칼(Kruskal) 알고리즘 (with. 백준 1197번 최소 스패닝 트리)
CS/알고리즘2024. 7. 16. 16:15크루스칼(Kruskal) 알고리즘 (with. 백준 1197번 최소 스패닝 트리)

크루스칼 알고리즘 (Kruskal Algorithm)크루스칼 알고리즘(Kruskal Algorithm)이란 최소 신장 트리(Minimum Spanning Tree)를 찾기 위해 사용되는 알고리즘이다. 신장 트리(Spanning Tree)그래프 내의 모든 정점을 포함하는 트리 최소 신장 트리(Minimum Spanning Tree)신장 트리 중에서 사용된 간선들의 가중치 합이 최소인 트리   최소 신장 트리를 찾기 위해 모든 간선을 가중치에 따라 오름차순으로 정렬하는 아이디어를 사용하여 효과적으로 MST를 구할 수 있게 된다.세부적인 구현 방법은 다음과 같다. 1. 모든 간선을 가중치에 따라 오름차순 정렬한다.2. 간선을 하나씩 선택하여 사이클이 생기지 않을 때 연결하여 모든 노드가 연결될 때 까지 반복한..

[데이터베이스] 인덱스(index) 정리
DB2024. 7. 10. 17:41[데이터베이스] 인덱스(index) 정리

인덱스   목차, 색인, 책갈피와 같은 기능을 하는 인덱스는, 데이터베이스 분야에서는 어떤 데이터를 검색할 때 속도를 높여주는 자료 구조로메모리 영역에 생성되는 일종의 책갈피이다.    인덱스 구조보통 Hash, B-Tree, B+Tree가 있다. Hash우리가 알고있는 Key, Value형태의 자료 구조다.해시 함수로 키 값을 해시값으로 변환하고, 이 해시 값을 기반으로 데이터를 빠르게 조회할 수 있다. - O(1)   하지만 이런 해시구조의 특성상 범위 검색에 효율이 떨어진다. 키 값이 조금이라도 변하게 되면 완전히 다른 해시 값을 반환하기 때문이다.범위 검색에서의 부등호 연산을 포함한 범위 조건(BETWEEN, LIKE 등)에는 적합하지 않다.   B-TreeB-Tree는 이진 트리를 확장한 트리 ..

인프콘 2024  티켓 이벤트가 있네요
2024. 7. 4. 11:24인프콘 2024 티켓 이벤트가 있네요

안녕하세요!! 블로그에 처음으로 존대로 포스팅을 진행해볼까 합니다. 요약 1. 인프콘 이벤트(링크)를 참조하셔서, MY 인프콘 페이지(링크)를 SNS, 블로그 등에 공유하세요. 2. 공유 게시물의 링크를 이벤트 페이지의 댓글에 남기기 아래는 제 인프콘 공유 페이지입니다. https://www.inflearn.com/conf/infcon-2024/share?year=2024&id=1170588&hash=diehreo%40228eccce&name=mag1c 인프콘 2024 - MY페이지친구의 인프콘 MY페이지를 둘러보고 인프콘 참가신청 하세요!www.inflearn.com 올해도 어김없이 인프콘이 개최되는데요, 인프콘은 역시 여름에 해야 제맛인 것 같아요 (?) 작년에는 유튜브를 통해 인프콘을 복습했다면, ..

graphQL의 N + 1문제와 DataLoader
공부방2024. 6. 29. 22:34graphQL의 N + 1문제와 DataLoader

graphQL에 대해 알아보자 - 1 (with NestJS, typeORM)학습을 위해 생성한 예제 코드는 깃헙에 있습니다.(링크)  graphQLgraphQL은 기존 데이터로 쿼리를 실행하기 위한 API를 위한 쿼리 언어이자 런타임이다. 클라이언트가 필요한 것만 정확히 요청할mag1c.tistory.com  N + 1이전 글의 예제에서 Post를 가져오는데에 Post와 Comments는 1:N 관계를 가진다.이 관계에서 comments를 조회할 때 comment가 lazy loding되어 N + 1 문제가 발생할 수 있다. //lazy loadingasync findAll(authorId?: number): Promise {    if (authorId) return await this.postRep..

인프랩 향로(이동욱)님 강연 회고 (데스커 라운지 워크투게더)
회고,후기2024. 6. 28. 11:25인프랩 향로(이동욱)님 강연 회고 (데스커 라운지 워크투게더)

어제 향로님의 실물을 영접(?)할 수 있는 기회가 있었다.   현재 고민들을 안고 있는 상황에서 개발자이자 인생 선배로서 향로님은 이 혼란함을 어떻게 해결했을까 궁금했다.공유해주시는 경험으로 길을 찾을 수 있지 않을까 하는 기대에 얼른 신청하게 되었다. 개발자분들과 함께했던 3시간, 향로님과 함께했던 2시간 동안 감정이 위아래로 요동치며 많은 것들이 정리되고, 또 새로운 고민거리를 안겨주었다. 어떤 고민이 있었고, 어떤 새로운 숙제가 생겼는지 지금 아니면 이 감정들이 조금 희석될 것 같아 정리가 덜 된 채로 책상에 앉았다.   참석하기 전에 나의 고민들은 개인적으로 잘 해나가고 있는지와 이직을 해야할지에 대한 고민이었다. 재직 중인 회사에서 내 가치가 있는지서비스와 내가 성장을 가파르게 할 수 있을지한 ..

graphQL에 대해 알아보자 (with NestJS, typeORM)
공부방2024. 6. 26. 18:05graphQL에 대해 알아보자 (with NestJS, typeORM)

GitHub - mag123c/nest-graphQLContribute to mag123c/nest-graphQL development by creating an account on GitHub.github.com graphQLgraphQL은 기존 데이터로 쿼리를 실행하기 위한 API를 위한 쿼리 언어이자 런타임이다. 클라이언트가 필요한 것만 정확히 요청할 수 있게 해준다. 공식 문서의 설명을 읽어보면 자세한 특징을 서술해두었고, 읽어보면 공통적으로 나오는 키워드들은 빠르다, 단일 요청, 쿼리와 타입 정도가 있다. 또한 공식 문서 내의 포스팅 중 REST와 비교한 글이 있었는데, "graphQL은 REST와 크게 다르지 않지만, API를 구축하고 소비하는 개발자 경험에 큰 차이를 만드는 작은 몇가지의 변..

[백준 2568번 Java] 전깃줄 - 2
코딩테스트/백준2024. 6. 22. 08:50[백준 2568번 Java] 전깃줄 - 2

문제 난이도PLATINUM V (문제 링크)  풀이LIS 알고리즘을 이진 탐색을 통해 구현하면 되는 문제로 해당 문제를 어떻게 코드로 풀어낼 것인지에 대한 아이디어도 아래 포스팅에서 자세히 다루기 때문에 구체적인 설명은 필요하지 않을 것 같다. [알고리즘] LIS (Longest Increasing Subsequence)LIS(최장 증가 부분 수열)N크기의 배열이 주어졌을때, 배열에서 일부 원소를 조합하여 만든 부분 수열 중, 오름차순의 조건을 만족하면서 길이가 최대인 부분 수열을 말한다. 아래처럼, {3, 6, 2, 1,mag1c.tistory.com  간단하게 복기하자면, 해당 문제는 전깃줄의 개수가 최대 100,000개이기 때문에, DP로 LIS를 구현해서는 풀 수가 없다.  전깃줄의 시작지점을 오..

[알고리즘] LIS (Longest Increasing Subsequence)
CS/알고리즘2024. 6. 21. 13:32[알고리즘] LIS (Longest Increasing Subsequence)

LIS(최장 증가 부분 수열)N크기의 배열이 주어졌을때, 배열에서 일부 원소를 조합하여 만든 부분 수열 중, 오름차순의 조건을 만족하면서 길이가 최대인 부분 수열을 말한다. 아래처럼, {3, 6, 2, 1, 7, 8, 5, 4, 9}의 배열이 있다면, LIS는 {3, 6, 7, 8, 9} 이다  DPLIS 문제는 각 요소를 포함하는 증가하는 부분 수열의 최대 길이를 찾는 문제로 이를 효율적으로 해결하기 위해 동적 계획법을 사용한다.단일 배열 내에서, 이전 인덱스의 숫자와 비교하여 증가시켜주면 되기 때문에 DP로 문제를 해결할 수 있다.단일 배열이라는 점만 제외하면 LCS와 유사한 매커니즘이기에, 점화식도 비슷한 방법으로 구현할 수 있다.   [알고리즘] LCS (Longest Common Subseque..

728x90
728x90
image