본문 바로가기

일기 (사실 근황임)

(52)
2023년 5월 30일 일기 현대모비스 알고리즘 경진대회가 개최됩니다. 대략 한 달 정도 남았는데 열심히 준비해보겠습니다. 가장 공부가 시급한 주제는 문자열, 기하, 플로우 정도네요. 기하와 플로우는 버리고 문자열에 집중하려고 합니다. 모비스에 집중하기 위하여 백준 대회는 잠시 쉬려고 합니다. 어차피 기말고사 시즌이라 대회가 없기도 합니다. 지금까지 7 우승 7 준우승을 달성하였는데(고인물 분들이 안 계셔서 가능한 결과지만) 개인적으로 만족스럽습니다. 대회 리뷰 글이 4개 정도 밀렸는데 시간 나는 대로 작성하려고 합니다. 토요일에 오랜만에 코드포스하려고 계획 중이었는데 서버 문제로 하루 연기되었습니다. 안타깝게도 일요일은 도저히 시간이 안 나서 건너 뛰었습니다. 어제 문제 구경해보니 제가 못 푸는 문제들이었습니다. 하루 미뤄주셔서 ..
BOJ 28039번 - 카드 게임 2 28039번: 카드 게임 2 근우와 명우는 재미있는 카드 게임을 하고 있다. N개의 카드가 일렬로 놓여 있다. 각 카드에는 점수가 적혀있다. 근우부터 시작하여 번갈아가면서 턴이 진행되는데 한 턴에는 가장 왼쪽에 있는 www.acmicpc.net ICPC 인터넷 예선 2015 B번 문제에서 N 제한을 키운 문제이다. 기존 문제의 경우 O(N^2) dp 풀이가 가능하지만 이 문제의 최대 N은 1e6이다. 먼저 나는 이 문제를 풀지 못하였고 다른 사람의 코드를 보고 풀었음을 밝힌다. 엄밀한 증명 없이 대강 감만 잡은 상태에서 작성하는 글이기 때문에 잘못된 내용이 있을 수 있다. 잘못된 내용이 있다면 지적 부탁드립니다. 다음과 같은 배열 A를 정의하자. A[i] = i번 카드에 적힌 수 배열 A의 값을 그래프로..
BOJ 1377번 - 버블 소트 1377번: 버블 소트 첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 매 루프에서 어떠한 원소 A[i]의 상태는 다음 중 하나이다. 왼쪽으로 1칸 이동한다. 오른쪽으로 x칸 이동한다. 이동하지 않는다. 그리고 상태 전이는 항상 이 순서대로 이루어진다. 예를 들어 오른쪽으로 이동하다가 왼쪽으로 이동하는 일은 발생하지 않는다는 것이다. 오른쪽으로 이동하는 원소가 있다면 왼쪽으로 이동하는 원소도 반드시 존재함에 주목하자. 따라서 답은 max(A[i]가 왼쪽으로 이동한 횟수)가 되며 이는 정렬 한 번으로 구할 수 ..
2023 우아한테크캠프 6기 1차 코딩테스트 [모집] 2023 우아한테크캠프 6기 | 우아한형제들 기술블로그 {{item.name}} 우아한개발자가 되고 싶은 분들을 위한 2023 우아한테크캠프 6기 모집이 시작됩니다! 올해 우아한테크캠프 6기는요! 🏝 여름방학 8주 동안 💡 Java 언어 기반의 백엔드 교육 👩🏽‍💻 techblog.woowahan.com 지금까지 코딩테스트 응시 경험이 단 한 번밖에 없었는데 그것도 2년 전 일이다. 올해는 일정상 본과정 참가가 불가능하지만 내년에는 참가할 수도 있으므로 경험 목적으로 응시하였다. 그 행사 때문에 2차 과제테스트 또한 응시가 불가능하다 :( 4개 문제가 출제되었고 사용 가능한 언어는 Java로 제한되었다. 13시에 시작하여 3시간 동안 진행되었는데 14시부터 부산대학교 오픈콘이 예정되어 있어 1시..
Ghudegy 정품 키 필요하신 분?
자담치킨 신메뉴 티키타코 순살치킨 후기 4천원 할인한다고 시켜 본 것이 이번 주 최대의 실수 비주얼은 살짝 괴식에 금방 물리고 맛도 그다지 없음 리뷰 이벤트 군만두가 더 맛있음 누가 사준다고 해도 거절하고 학식 먹으러 가는 맛 분명 배고팠는데 젓가락 놓고 싶어지는 맛 삐약아 미안해 끝
BOJ 13161번 - 분단의 슬픔 13161번: 분단의 슬픔 첫 번째 줄에는 UCPC 구성원의 수 N(1 ≤ N ≤ 500)이 주어진다. 두 번째 줄에는 N개의 정수가 주어지는데, i번째 수가 1이면 i번 사람은 무조건 A진영에 들어가야 함을, 2라면 무조건 B진영에 들어가야 www.acmicpc.net UCPC 2016에 출제된 flow 문제이다. 그래프가 크기 때문에 dinic 또는 그보다 빠른 flow 알고리즘이 필요하다. 워낙 유명한 문제이기에 풀이는 생략한다. 이 문제에서 dinic으로 TLE를 받는다면 다음 두 가지를 확인해보자. 첫 번째로 dfs 과정에서 매번 간선을 처음부터 확인하면 O(V^2 E)가 보장되지 않는다. work 배열과 reference 변수를 이용하여 해결할 수 있는데 구글링하면 금방 찾을 수 있다. 두 번..
LzSeg 사용 시 주의 사항 배열 st와 lz를 이용하여 LzSeg를 구현한다고 가정하자. st[p]에 접근하기 전에는 반드시 propagate(p, l, r)을 호출하여 lz의 데이터를 st에 반영해줘야 한다. 정말 기본적인 원칙인데 미처 생각하지 못하고 몇 시간 동안 디버깅하였다. 문제가 되었던 코드는 다음과 같다. int ret = query(2 * p, l, m, i, j); st[p] = max(st[2 * p], st[2 * p + 1]); if (ret != -1) return ret; ret = query(2 * p + 1, m + 1, r, i, j); st[p] = max(st[2 * p], st[2 * p + 1]); return ret; query 함수 내에서 propagate 함수를 호출하고 있다. (2 * ..