목록분류 전체보기 (257)
Joonas' Note
링크: https://www.acmicpc.net/problem/15686 문제 설명 마지막 줄에 다 요약되어있다. 도시에 있는 치킨집 중에서 최대 m개를 골라야한다.문제 조건에서 치킨집의 개수는 최대 13개이고, 도시에 있는 치킨집 k개 중에 m개를 고르는 경우의 수는 C(k,m)=k!m!(k−m)!숫자가 작아서 많아봐야 1500개가 좀 안되므로 치킨집을 선택하는 모든 경우의 수를 시도해 볼만 하다. 정해진 m개의 치킨집마다 모든 사람들의 집에 도달하는 최소 거리를 사람이 사는 집 기준으로 저장해둔다. 즉, 어떤 조합에 대해 j번 집은 가장 가까운 치킨집과의 거리를 저장하고 있다. 매 조합마다 모든 거리를 구하면 오버헤드가 심하므로 미리 ..
링크: https://www.acmicpc.net/problem/15685 문제알고스팟의 JM북에 그려진 그 드래곤 커브가 맞다. 간단한 수학 규칙으로 그려지는 그림인데, 이 문제에서는 드래곤 커브가 네 꼭지점을 모두 지나는 칸이 몇 개인지 구하는 거였다. 풀이드래곤 커브의 규칙을 미리 만들어놓고, 드래곤 커브의 시작점과 시작 방향이 주어졌을 때 규칙에 맞게 이동하면서 주변 칸에 해당 꼭지점이 지나갔음을 기록한다. 드래곤 커브는 이전 세대의 드래곤 커브를 이용하기 때문에 반복적인 구조이다. 각 방향과 관련된 변수들을 잘 설정하면 쉽게 구현할 수 있다. 나는 문제에 맞춰 우,상,좌,하 순서로 0,1,2,3을 사용했다. 원소들은 진행 방향, 드래곤 커브를 \(G_0 = \{\dots, a, b, c, d\}..
링크: https://www.acmicpc.net/problem/12755 2016 전북대학교 프로그래밍 경진대회 A번 비슷한 문제로는 BOJ 1748 - 수 이어 쓰기 1이 있는데, 거기에 조건을 하나 더 얹었다. 앞에서부터 N번째 자리에 있는 수를 출력하는 것이다. 1부터 N까지 전부 확인하는 건 시간적으로도 메모리적으로도 무리다. 따라서 탐색 범위를 좁힐 필요가 있는데 이 문제에서는 자리수별로 인덱스를 자르면 좀 낫다. 1자리 수는 1부터 9까지 9개가 있으며, 전부 이어 붙이면 길이가 9이다.2자리 수는 10부터 99까지 90(=99-10+1)개가 있으며, 전부 이어 붙이면 길이가 180(=90*2)이다.3자리 수는 100부터 999까지 900(=999-100+1)개가 있으며, 전부..
[이전 블로그에서 글 옮김] https://www.acmicpc.net/problem/2022 https://uva.onlinejudge.org/...&problem=1507 a,b,c 가 주어지면 k 를 구해내는 문제이다. 피타고라스로 A, B를 구해서 기울기를 구하고, 두 직선의 교점 방정식을 이용했다. 그리고 교점의 y 위치가 c 가 되는 순간을 구하도록 이분 탐색을 했다. 우선 a가 포함된 직선을 g(x), b가 포함된 직선을 f(x)라 한다면 아래와 같은 정보가 나온다. {A=√a2−k2B=√b2−k2 \( \begin{cases} f(x) = \frac{B}{k}x..
분산컴퓨팅 최종 프로젝트 보고서 (2017) Kinesis를 이용한 데이터 수집 from Joonas Yoon AWS 서비스를 활용해보는 것이 분산컴퓨팅 프로젝트였다. EMR를 쓰는 사람도 있었고, Amazon SNS를 사용해보거나 AWS Shield를 분석하거나 Amazon GameLift를 다뤄보는 프로젝트 등 재밌는 발표가 많았다.나는 RedShift를 다루어보고 싶었는데, 그러기 위해선 분석할 데이터나 데이터를 수집하는 과정이 필요했다. 데이터의 수집부터 저장, 그리고 그 분석까지 하면 재밌을 것 같아서 프로젝트 주제를 "데이터 웨어하우스를 위한 데이터 수집 및 저장"으로 정했다.AWS re:invent에서 발표된 PPT들을 많이 참고하면서 아키텍처를 구상하고 서비스를 선택했다.우선 어떤 데이터를..
https://easyengine.io/tutorials/nginx/troubleshooting/emerg-bind-failed-98-address-already-in-use/ nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use) nginx: [emerg] bind() to [::]:443 failed (98: Address already in use) 해당 포트를 이미 사용 중이라고 나오는 데, 그럼 해당 포트를 사용하고 있는 것을 종료해버리면 된다. ubuntu@joonas:~$ sudo fuser -k 80/tcpnginx를 재시작하면 잘 돌아간다.
https://joonas-yoon.github.io/MenuSelectHelper/ 친구가 저녁메뉴를 계속 못 골라서 그냥 아무거나 나오는 거 먹으라고 하려고 구현 저녁 약속시간까지 2~3시간 남짓 남아서 그동안 만들었다. 메뉴 항목들은 이 그림을 참고했음. 사실 다 핑계고 시험기간에 공부하기 너무 싫었다. 구현도 그렇고 색깔 바뀌면서 골라지는 게 생각보다 재밌어서 이것저것 추가해봤다. 서브라임 켜서 크롬으로 확인하며 구현한거라 HTML + javascript가 전부. 비빔냉면/물냉면도 정해주는 갓갓인 구조. 탕수육 찍먹/부먹은 추후 업데이트 (...) 매운걸 못 먹거나 비린걸 못 먹는 친구가 있어서, 특정 메뉴는 제외하는 기능도 추가하면 좋지 않을까 생각중
백준 온라인 저지를 운영하는 스타트링크에서 사용하는 알고리즘 정기 강의 커리큘럼이다.https://offline.startlink.help/hc/ko/articles/217245158 1. 알고리즘과 입/출력2. 자료구조 1- 큐/스택/데크- 문자열3. 다이나믹 프로그래밍 14. 알고리즘 수학 1- GCD/LCM- 소수5. 정렬6. 그래프 1- 정의와 표현방법- 탐색 (DFS/BFS)- 모델링7. 트리 1- 순회- 저장- 트리와 관련한 알고리즘8. 그리디9~10. 분할 정복- 이분 탐색- 머지 소트/퀵 소트- 가장 가까운 두 점11~12. 완전 탐색- 비트마스크- 순열- 부르트 포스- 백트래킹13. 자료구조 2- 스택 2- 서로소 집합(Disjoint-Set)- 힙과 힙 소트- 이진 탐색 트리 (BST)..