본문 바로가기

전체 글21

[자료구조] 우선순위 큐 (파이썬 heapq 사용법) queue란?큐는 가장 먼저 삽입된 데이터를 가장 먼저 삭제하는 FIFO(First in First out) 자료구조형이다. rear(한쪽 끝)에 데이터가 추가되고,front(다른쪽 끝)에서 데이터가 삭제되는 방식이다.heap이란?우선순위 큐를 구현하기 위해서는 다양한 자료형을 사용할 수 있는데 그 중 힙은 완전 이진 트리를 기반으로, 삭제 / 삽입에 O(log n) 소요되어 효율적으로 구현할 수 있다.최소 힙 또는 최대 힙으로 나뉘며, 최소 힙은 부모 노드가 자식 노드보다 작거나 같은 값을 가지는 구조이다.파이썬의 heapq 라이브러리는 최소 힙을 사용해서 priority 값이 낮을수록 먼저 삭제 된다. 우선순위 큐heap 힙 자료구조는 우선순위 큐를 구현하기 위해 사용하는 자료구조이다.우선순위 큐는 .. 2024. 6. 14.
[프로그래머스] lv3. 순위 (파이썬 Python) 순위 문제n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다.선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. 입출력 예시 제한사항- 선수의 수는 1명 이상 100명 이하입니다.- 경기 결과는 1개 이상 4,500개 이하입니다.- results 배열 각 행 [A, B]는 A 선수가 B 선수.. 2024. 5. 30.
[백준] 🥈10816번 숫자 카드2 10816번 문제숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다.셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, .. 2024. 5. 12.
[백준] 🏅1107번 리모콘(파이썬 Python) 1107번 문제 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로 이동하고, -를 누르면 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이다. 어떤 버튼이 고장났는지 주어졌을 때, 채널 N으로 이동하기 위해서 버튼을 최소 몇 번 눌러야하는지 구하는 프로그램을 작성하시오. 수빈이가 지금 보고 있는 채널은 100번이다. 입력 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난.. 2024. 4. 18.
[RecSys] KGAT : Knowledge Graph Attention Network forRecommendation 논문 리뷰, 수식 설명 👩🏻‍💻 본 포스팅은 개인적 공부를 위해 논문 KGAT를 정리한 포스팅으로, 오류가 있을 수 있습니다. 이전에 포스팅했던 LightGCN은 GCN의 연장선으로, 사용자와 아이템 간의 연관성을 고려하는 가벼운 모델이었다. 그러나 우리 프로젝트가 가지고 있는 데이터와 목표로 하는 모델링은 유저와 유저 간의 연관성도 고려해야 했기에, 따라서 협업 필터링 + knowledge graph까지 합쳐진 하이브리드 모델을 알아봐야 하는 상황이었다. Background - CF(Collaborative Filtering) : 동일한 아이템에 관심 있는 비슷한 사용자에 집중한다. - SL(Supervised Learning) : 아이템 - 속성의 연관성에 집중한다. - KG(Knowledge Graph) : entity-.. 2024. 4. 11.
[RecSys] Latent Factor 알아보기 우리가 일상에서 쉽게 사용하는 콘텐츠 제공 서비스에서는 흔하게 아이템을 추천해주는 기능을 확인할 수 있다. 기존 추천시스템들은 메모리 기반 추천시스템으로, 메모리에 사용자-아이템 정보를 쌓아두는 방식으로 연관성을 파악했다. 다만 이러한 방식은 사용자가 많아지면서 쌓아지고, 듬성듬성한 sparse data로 나타난다는 단점이 있었다. 이러한 단점을 극복하기 위해서 나타난 방식이 모델 기반 추천시스템이고, 자주 등장하는 용어인 Latent Factor에 대해 알아보겠다. 모델 기반 추천시스템이란? 메모리 기반 추천시스템과는 다르게 모델을 생성해 둔 후, 모델을 통해서 추천을 제공하는 방식이다. 요새는 다양한 추천시스템 모델들이 발전하며(LightGCN, MF 등 ... 논문 카테고리에 몇개 정리되어있다.) .. 2024. 3. 26.
[RecSys] LightGCN: Simplifying and Powering Graph ConvolutionNetwork for Recommendation 추천시스템 프로젝트 시작하면서 급하게 읽는 GCN .. 💃🏻 수식이 너무 어려워용 👩🏻‍💻 본 포스팅은 개인적 공부를 위해 논문 LightGCN을 정리한 포스팅으로, 오류가 있을 수 있습니다. 1. Introduction LightGCN은 GCN에서 협업 필터링에 필요한 부분만 살린 모델로, 특히 GCN을 계승한 NGCF의 약점을 보완한다는 특징이 있다. Contribution은 다음과 같다. GCN 모델에 사용된 feautre transformation과 nonlinear activation 단계를 제거해, 협업 필터링에 의미 없고 연산량만 잡아먹는 연산을 제거한다. GCN의 아키텍처 중에서도 추천에 가장 의미있는 컴퍼넌트들만 선정한 추천시스템을 구축한다. 2. Preliminaries GCN - 애초.. 2024. 3. 25.
[RL] Deep Reinforcement Learning From Human References : RLHF 👩🏻‍💻 본 포스팅은 개인적 공부를 위해 강화학습 논문 RLHF를 정리한 포스팅으로, 오류가 있을 수 있습니다. 1. Introduction 이전까지 진행되어온 RL 연구는 'reward' 단계가 태스크별로 매우 구체적이어야 한다는 단점이 존재했다. 이 논문은 'reward', 즉 보상이 구체적이고 복잡해야 한다는 단점을 극복하게 된다면 RL이 더욱 발전할 것이라는 전제에서 시작된다. inverse RL이나 정확한 행동을 지시하는 방법도 있지만, 로봇에게 행동을 지시할 때에는 인간과 다른 방식의 행동론을 적용해야 한다는 어려움이 존재한다. => 인간이 원하는 방향성대로 agent=머신을 조종하기 위해서는, '머신이 수행할 수 있는 범위와 방향성 내에서 인간이 궤도를 결정하여 최적화하는' 방식을 채택한다... 2024. 3. 11.
[데이터베이스] 데이터베이스 저장 및 인덱스 데이터베이스의 저장 장치 일반적으로 하드디스크(HDD, mechanic device), SSD(electronic device)에 저장함. 디스크 성능 결정의 주요 요소 디스크 I/O 디스크 접근 횟수를 줄이기 disk access time 줄이기 디스크에 데이터를 배치하는 방식 ⇒ 파일 조직 방법 Disk Access Time disk access time = seek time + rotational delay + transfer time seek time = 데이터가 있는 트랙을 찾아가는 시간 rotational delay = 데이터가 있는 섹터를 찾아가는 시간 transfer time = 디스크 헤드가 데이터를 읽어들이는 시간 하드 디스크는 mechanical device이므로, 트랙을 찾는 시간(.. 2023. 11. 29.