분류 전체보기

알고리즘

UnionFind와 순서 강제로 탐색하기

문제 & 재정의 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 위 문제는 상하좌우 방향에 인접한 블럭들의 크기를 구하는 전형적인 탐색 문제이다. UnionFind로 탐색하기 탐색이 가능한 것은 (x, y)를 기준으로 (x+-1, y)와 (x, y+-1) 총 4개의 경우로 탐색이 가능하다. 이 상하좌우 인접을 하나하나 탐색하는게 아니라, 각각의 그룹으로 묶을 수 있다면? 그룹별 크기를 구하는건 자연스럽게 할 수 있다. 그룹으로 묶는 방법은 여러가지가 있지만 MST를 구현할 때 사용하는 Un..

프로젝트/Beatn-beat [비튼 - 비트]

4. Youtube-player 테스트

참고자료 youtube_player_iframe | Flutter package Flutter port of the official YouTube iFrame player API. Supports web & mobile platforms. pub.dev BGMs 개발기 (YouTube 플레이리스트 공유 및 원격 음악 재생 서비스) 회사 초창기부터 5년가량 내부에서만 사용하던 쥬크박스 시스템을 오픈하였습니다. 쥬크박스 개발기를 적어보려고 합니다. 이번 글에서는 어떻게 쥬크박스가 나오게 됐는지, 어떻게 개발했는 secondspaceinc.tistory.com 과정 BGMs의 개발기를 보다가 알게 된 정보이다. Youtube를 iframe으로 재생을 하게 되면, 광고가 나오지 않는다! 기존에는 Youtube-..

프로젝트/Beatn-beat [비튼 - 비트]

3. 디자인 전면 수정

참고자료 Zaddle Agency - Webflow HTML website template An agency template packed with sleek interactions, animations, parallax scrolling effects, and an interactive custom cursor to impress your clientele. zaddle.webflow.io 15 Gorgeous Color Schemes - Best Web Design Colors 2021 15 Gorgeous Color Schemes From Award-Winning Websites, TRUSTED KIGALI DEVELOPERS - Web development Company in Rwanda - Wor..

알고리즘

PrefixSum 갱신 빠르게 하기

문제 2268번: 수들의 합 7 첫째 줄에는 N(1 ≤ N ≤ 1,000,000), M(1 ≤ M ≤ 1,000,000)이 주어진다. M은 수행한 명령의 개수이며 다음 M개의 줄에는 수행한 순서대로 함수의 목록이 주어진다. 첫 번째 숫자는 어느 함수를 사용했는 www.acmicpc.net 재정의 PrefixSum(구간 합)과 갱신을 하는 단순한 문제. N이 10**6이고, M이 10**6이다. O(n*log n)으로 풀어야 한다. M번 만큼의 loop는 무조건 돌아야 하므로, PrefixSum, Update를 O(log n)이하로 풀어야 한다. 누적합을 이용하면 O(1)로 PrefixSum을 구할 수 있다. 하지만 update하는데 O(n)이 들기 때문에, 누적합을 활용할 수 없다. O(log n)으로 ..

프로젝트/Beatn-beat [비튼 - 비트]

2. Flutter Web GNB(global navigation bar)

참고 자료 Interactive Navigation items in Flutter Web What you will learn from this post? dariadobszai.medium.com 과정 Navigation-bar를 만들고 싶어서, 구글링을 해 보니 쉽게 찾을 수 있었다. 나는 그냥 navigation-bar라고 불렀는데, 웹 전체적으로 존재하는 navigation-bar는 global-navigation-bar를 줄인 GNB로 부른다는 걸 처음 알았다. 그리고 빌드를 하는 방법도 쉽게 찾을 수 있었다. How to Deploy Flutter Web Application? Learn how to deploy Flutter web app, for Flutter developers. www.d..

알고리즘

날짜 비교하기

문제 & 재정의 2457번: 공주님의 정원 첫째 줄에는 꽃들의 총 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 각 꽃이 피는 날짜와 지는 날짜가 주어진다. 하나의 날짜는 월과 일을 나타내는 두 숫자로 표현된다. 예를 들어서, www.acmicpc.net 이전 글인 Greedy에서 상위/하위 호환 처리하기와 동일한 문제이다. Day로 표현하기 일년을 365일이라 칭하는 것 처럼, 일 단위로 표현하는 방법. month_per_day = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] def date_to_sum(month: int, day: int) -> int: return sum(month_per_day[1:month]) + day..

알고리즘

Greedy에서 상위/하위 호환 처리하기

문제 2457번: 공주님의 정원 첫째 줄에는 꽃들의 총 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 각 꽃이 피는 날짜와 지는 날짜가 주어진다. 하나의 날짜는 월과 일을 나타내는 두 숫자로 표현된다. 예를 들어서, www.acmicpc.net 재정의 3월 1일부터 11월 30일까지를 커버하는 최소의 꽃 개수 구하기. 1. x월 y일을 비교할 수 있게 정량화 하기. 2. 늦게 끝나는 순, 일찍 시작하는 순으로 정렬하기 (상위 호환 처리를 위해) 3. 정렬된 꽃을 11월 30일이 될 때 까지, 하나씩 집기. 월과 일을 정량화 하는 방법은 무수히 많지만, 두 가지 형태를 주로 사용한다. 날짜 비교하기 이 글에서 설명 된 방식 중, Day로 표현하는 방식을 사용 한다. 탐색의 중복 ..

알고리즘

DP 역추적 하기

문제 & 재정의 2662번: 기업투자 어떤 투자가가 여러 기업들에게 돈을 투자해서 최대의 이익을 얻고자 한다. 단, 투자는 만원 단위로 할 수 있으며 각 기업은 많이 투자할수록 많은 이익을 투자가에게 돌려준다. 돈을 투자하지 www.acmicpc.net 이전의, 인덱스로 상태관리하기 글의 문제와 동일하다. Tabulation으로 DP Tabulation으로 DP를 하게 되면, 상태 공간을 적층식으로 만들어 가게 된다. 즉, 현재 상태공간이 어느 상태공간에서 전이 됐는지 로직상에서 확인이 된다. 이는 적층식으로 전이 되는 과정에서, Path도 전이시켜 따로 관리하면 단순하게 해결할 수 있다. dp = [[0] * (n+2) for _ in range(m+2)] path = [[0] * (n+2) for _..

알고리즘

Index로 상태 공간 정의하기

문제 2662번: 기업투자 어떤 투자가가 여러 기업들에게 돈을 투자해서 최대의 이익을 얻고자 한다. 단, 투자는 만원 단위로 할 수 있으며 각 기업은 많이 투자할수록 많은 이익을 투자가에게 돌려준다. 돈을 투자하지 www.acmicpc.net 재정의 두 가지 제약 조건이 존재한다. 정해진 투자액수만큼 투자 한다. 한 기업에는 한 번만 투자할 수 있다. 금액의 조합을 정해야 하고, 기업의 조합도 정해야 한다. 완전 탐색을 활용한다. 비 효율적인 상태공간 정의 완전 탐색을 해야하는 문제이다. 상태 공간을 기업의 개수, 남은 금액으로 단순하게 정의 했다. 그렇게 되면 다음과 같이 코드가 구성 된다. 다음 코드의 문제점이 무엇인지 생각 해 보자... def get_max_profit() -> List[int]:..

코딩 악귀
'분류 전체보기' 카테고리의 글 목록 (4 Page)