본문 바로가기

전체 글110

2004 정보올림피아드 자료집 - 경기도교육정보연구원 (2.2MB) 외장하드 정리하다가 찾았다. 어릴 때, 친형이 이걸로 독학했었는데... 요즘은 정리가 잘 되어있는 좋은 자료들이 워낙 많아서 이게 별로 쓸모없을 것 같다. 혹시나 누군가에겐 도움이 될까 싶어서 공유함. 저기 있는 문제들 중 공식대회 기출문제는 BOJ에서 찾아 채점해보면 된다. 2017. 1. 22.
구간 나누기 - KOITP_201601_INTERVALDIVISION 문제 링크(koitp.org/problem/KOITP_201601_INTERVALDIVISION/)동적계획법으로 해결할 수 있다.dp(k, i) : i번째 수까지 k개의 구간을 정했을 때의 최적해dp(k, i) = max[dp(k-1, j) + max(A(j+1)~A(i)) - min(A(j+1)-A(i))]여기서 max( )와 min( )을 계산하는데 O(N)이 걸려서 한 가지 변형을 한다.dp_contain_max(k, i) = max[dp(k-1, j) + max(A(j+1)~A(i))]dp_contain_min(k, i) = max[dp(k-1, j) - min(A(j+1)~A(i))]그러면 dp(k, i) = max[dp_contain_max(k, i) - A(i), dp_contain_min(.. 2017. 1. 22.
포위 - SDS_PRO_9_5 문제 링크(koitp.org/problem/SDS_PRO_9_5/)A나라와 B나라의 병사들에 대해 각각 컨벡스헐을 구한다.그러면 A나라 컨벡스헐 내부에 있는 B나라의 병사 수와 B나라 컨벡스헐 내부에 있는 A나라의 병사 수를 구해야하는데, 편의상 전자에 대해서만 논하도록 하겠다.A나라 컨벡스헐의 윗부분과 아랫부분을 나누어 생각해보자.점 P가 A나라 컨벡스헐의 내부에 있다는 의미는 아래 1)과 2)를 모두 만족하는 것과 동치.1) P가 윗부분 컨벡스헐에 대해 오른쪽에 있다.2) P가 아랫부분 컨벡스헐에 대해 왼쪽에 있다.따라서 A나라 컨벡스헐의 점들과 B나라 병사들 전부를 X좌표 순으로 오름차순 정렬해서 two-pointer 기법으로 처리하면 선형에 모든 병사들에 대한 처리가 가능하다. 만약 B나라 병사의.. 2017. 1. 21.
Facts and Fallacies of Software Engineering '우리가 미처 알지 못한 소프트웨어 공학의 사실과 오해'Computing Trends의 설립자인 소프트웨어공학자 Robert L. Glass가 2003년에 쓴 책이다.실무와 학계 양쪽을 모두 경험한 저자가 썼고 번역본의 질이 좋아 술술 잘 읽혔다.책의 주된 내용은 55가지 사실과 10개의 오해에 대해 조사, 분석한 걸 설명한 것이다. 사실 1. 소프트웨어 작업에서 가장 중요한 요소는 프로그래머의 자질이다. 사실 2. 최고의 프로그래머는 최하의 프로그래머보다 28배 더 뛰어나다. 사실 3. 지체된 프로젝트에 사람을 추가 투입하면 프로젝트가 더 늦어진다. 사실 4. 작업 환경은 생산성과 품질에 지대한 영향을 미친다. 사실 5. 소프트웨어 업계에는 과대선전(도구와 기술에 대한)이 만연해 있다. 사실 6. 새로.. 2017. 1. 21.
248 게임 - USACO_2016OPENGOLD_248 문제 링크(koitp.org/problem/USACO_2016OPENGOLD_248/)dp(i, j) : i ~ j까지의 답dp(i, j) = max[(dp(i, k)==dp(k+1, j))x(dp(i, k)+1)] 2017. 1. 21.